Java手动序列化和反序列化的实现
2013-02-26 20:12
375 查看
Java代码
![](http://qiaolevip.iteye.com/images/icon_copy.gif)
![](http://qiaolevip.iteye.com/images/icon_star.png)
![](http://qiaolevip.iteye.com/images/spinner.gif)
//序列化对象为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;
}
![](http://qiaolevip.iteye.com/images/icon_copy.gif)
![](http://qiaolevip.iteye.com/images/icon_star.png)
![](http://qiaolevip.iteye.com/images/spinner.gif)
//序列化对象为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序列化,反序列化实例(属性类不实现序列化接口)
- java执行序列化和反序列化操作实现对象的clone
- Java实现序列化和反序列化
- 序列化与反序列化,Java实现
- java序列化和反序列化对象到mysql 的实现
- java使用serializable进行序列化与反序列化实现对象clone(克隆)
- Java序列化,如何实现序列化和反序列化?常见的序列化协议有哪些?
- Java 中的类为什么要实现序列化呢 / JAVA中序列化和反序列化中的静态成员问题
- 数据结构与算法分析笔记与总结(java实现)--二叉树4:二叉树的序列化和反序列化练习题
- Java对象的序列化和反序列化及其实现和使用
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下
- java 序列化 反序列化 简单实现
- 二叉树的序列化和反序列化java借助队列实现
- java序列化和反序列化的简单实现
- Apache Avro 序列化与反序列化 (Java 实现)
- 线程实现方式以及序列化 反序列化.java
- java 序列化和反序列化实现克隆
- Java对象序列化和反序列化
- Java序列化与反序列化
- java序列化反序列化深入探究