序列化和反序列化

简介:

 注意点:1、序列化并不保存静态变量

         2、若父类未实现Serializable,子类实现了,父类需提供一个无参构造方法,且父类不会被序列化(无参构造方法只是用来构造父类)

         3、Transient关键词可以用来阻止成员被序列化

         4、只有成员变量能被序列化,成员函数不能被序列化

 
  1. TreeNode obj = new TreeNode(); //要实现Serializable接口
  2.         obj.setId(1); 
  3.         //内存流 
  4.         //ByteArrayOutputStream os = new ByteArrayOutputStream(); 
  5.         //ObjectOutputStream outStream = new ObjectOutputStream(os); 
  6.          
  7.         //文件流 
  8.         FileOutputStream fos = new FileOutputStream("dat"); 
  9.         ObjectOutputStream outStream = new ObjectOutputStream(fos); 
  10.          
  11.         outStream.writeObject(obj); 
  12.         outStream.flush(); 
  13.         outStream.close(); 
  14.  
  15.         //不知道为什么JAVA没有像C#里的同时支持输入输出Stream 
  16.         //ByteArrayInputStream in = new ByteArrayInputStream(os.toByteArray()); 
  17.         //ObjectInputStream inStream = new ObjectInputStream(in); 
  18.          
  19.         FileInputStream fin = new FileInputStream("dat"); 
  20.         ObjectInputStream inStream = new ObjectInputStream(fin); 
  21.          
  22.         TreeNode t = (TreeNode)inStream.readObject(); 
  23.         System.out.println(t.getId()); 
  24.         inStream.close(); 

 



本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/652406,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 安全 Java
Java一分钟之-Java序列化与反序列化
【5月更文挑战第14天】Java序列化用于将对象转换为字节流,便于存储和网络传输。实现`Serializable`接口使类可被序列化,但可能引发隐私泄露、版本兼容性和性能问题。要避免这些问题,可使用`transient`关键字、控制`serialVersionUID`及考虑使用安全的序列化库。示例代码展示了如何序列化和反序列化对象,强调了循环引用和未实现`Serializable`的错误。理解并妥善处理这些要点对优化代码至关重要。
36 1
|
23天前
|
存储 Java
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)
JaveSE—IO流详解:对象输入输出流(序列化及反序列化)
|
27天前
|
JSON Java API
jackson序列化和反序列化中的注解和扩展点大全【收藏】
jackson序列化和反序列化中的注解和扩展点大全【收藏】
|
28天前
|
存储 JSON 数据库
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术
|
1月前
|
网络协议 Java API
【Java】序列化和反序列化
【Java】序列化和反序列化
21 4
|
1月前
|
Java 数据安全/隐私保护 Android开发
Java基础21-读懂Java序列化和反序列化(二)
Java基础21-读懂Java序列化和反序列化(二)
99 1
|
1月前
|
XML 存储 Java
Java基础21-读懂Java序列化和反序列化(一)
Java基础21-读懂Java序列化和反序列化(一)
22 1
|
1月前
|
JSON 缓存 Java
【Java基础】 序列化和反序列化
Java中的序列化(Serialization)和反序列化(Deserialization)是将对象和字节流之间进 行相互转换的过程。这两个过程用于保存对象的状态并能够在需要时恢复这些状态。
19 1
|
26天前
|
存储 Java 数据库
Java中序列化与反序列化详解
Java中序列化与反序列化详解
15 0
|
27天前
|
JSON Java 数据格式
实现自定义序列化和反序列化控制的5种方式
实现自定义序列化和反序列化控制的5种方式