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,如果使用者沒有添加,編譯期會自動添加一個

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