码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-06-12 17:38:02      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

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

}


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

标签:

原文地址:http://my.oschina.net/reesechou/blog/466041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!