加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

自定义序列化和反序列化的java实现

发布时间:2020-05-28 22:01:33 所属栏目:Java 来源:互联网
导读:自定义序列化和反序列化的java实现

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

 
import java.io.*;
 
/**
 * Created by jingqing.zhou on 2015/6/12.
 * ByteArrayOutputStream :可以捕获内存缓冲区的数据,转换成字节数组。
 * DataInputStream&DataOutputStream关心如何将数据从高层次的形式转化成低层次的形式.
 * FileInputStream&FileOutputStream关心如何操作存储单元以接受和产生数据。
 */
public class ByteArrayIO {
    //序列化对象为String字符串,先对序列化后的结果进行BASE64编码,否则不能直接进行反序列化
    public static String writeObject(Object o) throws Exception {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(bos);
        oos.writeObject(o);
        oos.flush();
        oos.close();
        bos.close();
        //return new BASE64Encoder().encode(bos.toByteArray());
        return new String(bos.toByteArray(),"ISO-8859-1");
    }
 
    //反序列化String字符串为对象
 
    public static Object readObject(String object) throws Exception{
        //ByteArrayInputStream bis = new ByteArrayInputStream(new BASE64Decoder().decodeBuffer(object));
        ByteArrayInputStream bis = new ByteArrayInputStream(object.getBytes("ISO-8859-1"));
        ObjectInputStream ois = new ObjectInputStream(bis);
        Object o = null;
        try {
            o = ois.readObject();
        } catch(EOFException e) {
            System.err.print("read finished");
        }
        bis.close();
        ois.close();
        return o;
    }
 
}

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读