java中序列化和反序列化的使用

Java中序列化是指将Java对象通过变换成为字节序列,来将该对象持久化到硬盘中。并且字节序列也很适合网络传输,因此如果需要在网络中传递Java对象,可以在其先序列化后进行传输,并由接收方进行反序列化操作。Java中反序列化是指将序列化的字节序列重新组织成Java对象,实际上,序列化是指将Java对象转换为字节序列,而反序列化是指将字节序列转换为Java对象。

假设存在一个User对象,其代码如下:

 public class User implements Serializable{
     public String name;
     public int age;
 }

如果需要进行序列化,可以:

 User user = new User();
 user.name = "XuJun";
 user.age = 13;
 ​
 File file = new File("user.txt");
 ​
 ObjectOutputStream objOut = new ObjectOutputStream(new FileOutputStream(file));
 objOut.writeObject(user);
 objOut.close();

此时,user对象就被序列化到了user.txt中

如果需要进行反序列化的操作,可以:

 User user = null;
 File file = new File("user.txt");
 ​
 ObjectInputStream objInput = new ObjectInputStream(new FileInputStream(file));
 user = (User)objInput.readObject();
 objInput.close();

注意:

  • 被static、transient修饰的字段不会被序列化

  • 建议为要序列化的类添加serialVersionUID,如果使用者没有添加,编译期会自动添加一个

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章