- //序列化对象为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位移运算
![](https://ucenter.51cto.com/images/noavatar_middle.gif)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java反序列化-反射
java反序列化之-反射
java 反序列化 web安全