美文网首页
Java中对象或者对象数组的序列化和反序列化

Java中对象或者对象数组的序列化和反序列化

作者: i小雨 | 来源:发表于2021-01-11 18:06 被阅读0次

1、序列化(反序列化)对象:

    /**
     * 序列化对象
     * @Date 2021年1月11日下午4:11:30
     * @Author yuanyong
     * @Description
     */
    public byte[] serializeObject(Object object) {
        ObjectOutputStream oos = null;
        ByteArrayOutputStream baos = null;
        try {
            // 序列化
            baos = new ByteArrayOutputStream();
            oos = new ObjectOutputStream(baos);
            oos.writeObject(object);
            byte[] bytes = baos.toByteArray();
            return bytes;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                baos.close();
                oos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    /**
     * 反序列化对象
     * @Date 2021年1月11日下午4:12:05
     * @Author yuanyong
     * @Description
     */
    public Object unserializeObject(byte[] bytes) {
        ByteArrayInputStream bais = null;
        ObjectInputStream ois = null;
        try {
            // 反序列化
            bais = new ByteArrayInputStream(bytes);
            ois = new ObjectInputStream(bais);
            return ois.readObject();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                bais.close();
                ois.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

2、序列化(反序列化)对象数组:

/**
     * 集合序列化
     * @Date 2021年1月11日下午5:00:09
     * @Author yuanyong
     * @Description
     */
    public byte[] serializeListObject(List<?> object) {
        ObjectOutputStream oos = null;
        ByteArrayOutputStream baos = null;
        try {
            // 序列化
            baos = new ByteArrayOutputStream();
            oos = new ObjectOutputStream(baos);
            //oos.writeObject(object);
            for(Object obj : object){
                oos.writeObject(obj);
            }
            byte[] bytes = baos.toByteArray();
            return bytes;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                baos.close();
                oos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    /**
     * 集合反序列化
     * @Date 2021年1月11日下午5:00:21
     * @Author yuanyong
     * @Description
     */
    public List<Object> unserializeListObject(byte[] in) {
        List<Object> list = new ArrayList<>();
        ByteArrayInputStream bis = null;
        ObjectInputStream is = null;
        try {
            if(in != null) {
                bis=new ByteArrayInputStream(in);
                is=new ObjectInputStream(bis);
                while (bis.available() > 0) {
                    Object obj= is.readObject();

                    if(obj == null){
                        break;
                    }else{
                        list.add(obj);
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }  finally {
            try {
                is.close();
                bis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return list;
    }

相关文章

  • Kryo序列化器(快速上手)

    1. 简介 将Java对象进行缓存或者在网络间传输时,Kryo用于将Java对象序列化成为字节数组,或将字节数组反...

  • 对象序列化

    对象序列化的目标是将对象保存在磁盘中,或者在网络中传输对象,对象序列化机制允许把内存中的Java对象转换成...

  • 序列化与反序列化1

    一、什么是序列化与反系列化? 序列化是将对象转换为二进制形式的数据(如Java中的byte数组),反序列化是再将二...

  • Java中对象或者对象数组的序列化和反序列化

    1、序列化(反序列化)对象: 2、序列化(反序列化)对象数组:

  • JAVA反序列化漏洞

    目录 反序列化漏洞序列化和反序列化JAVA WEB中的序列化和反序列化对象序列化和反序列范例JAVA中执行系统命令...

  • 在Java中进行序列化和反序列化

    对象序列化的目标是将对象保存在磁盘中,或者允许在网络中直接传输对象。 对象序列化允许把内存中的Java对象转换成平...

  • 在Java中进行序列化和反序列化

    对象序列化的目标是将对象保存在磁盘中,或者允许在网络中直接传输对象。 对象序列化允许把内存中的Java对象转换成平...

  • 序列化(java Serializeable、json、prot

    java序列化 序列化:将对象写入到IO流中反序列化:从IO流中恢复对象意义:序列化机制允许将实现序列化的Java...

  • IO流(三)~ 其他流

    一、序列化 1. 序列化流 什么是序列化流把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者...

  • java专题之序列化

    一、基本概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反...

网友评论

      本文标题:Java中对象或者对象数组的序列化和反序列化

      本文链接:https://www.haomeiwen.com/subject/ftndaktx.html