自定义序列化和反序列化的java实现
自定义序列化和反序列化的java实现
有种下班别走 发表于3年前
自定义序列化和反序列化的java实现
  • 发表于 3年前
  • 阅读 1352
  • 收藏 4
  • 点赞 0
  • 评论 1

腾讯云 技术升级10大核心产品年终让利>>>   

package j2se.IO;

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;
    }

}


共有 人打赏支持
粉丝 4
博文 65
码字总数 15218
评论 (1)
wwzskyrain
看不出这个帖子有什么明确的意义。楼主只写代码,不解释和讨论,这叫生而不养的哲学理念吗!
×
有种下班别走
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: