JAVA類的序列化

1.serialVersionUID

serialVersionUID這個長整形的作用是保持對象序列化的兼容性。

例如:當A類的實例B被序列化到文件上去以後,A類突然增加了一個屬性,這個時候進行反序列化,會出現類的類型不整合的錯誤;

如果A類定義了serializableUID的話,則反序列化可以成功,B對象可以從文件直接讀到內存當中去。

2.序列化和反序列化過程

   序列化: ObjectOutputStream stream = new ObjectOutputStream(new FileOutputStream("fileName"));stream.writeObject(new Object());

   反序列化: ObjectInputStream stream = new ObjectInputStream(new FileInputStream("fileName"));ObjectA object = (ObjectA)stream.readObject();

3.xstream序列化JAVA類

XStream 有三個突出的特點:

  1. XStream 不關心序列化/逆序列化的類的字段的可見性。
  2. 序列化/逆序列化類的字段不需要 getter 和 setter 方法。
  3. 序列化/逆序列化的類不需要有默認構造函數。
  4. XStream 序列化的類不需要實現 Serializable 接口。 

序列化對象:

import com.thoughtworks.xstream.*;

XStream xs = new XStream(new DomDriver());

Object fs = new Object();

FileOutputStream fs = new FileOutputStream("c:/temp/employeedata.txt");

xs.toXML(e, fs);

 

發序列化對象

import com.thoughtworks.xstream.*;

XStream xs = new XStream(new DomDriver());

Object fs = null;

FileInputStream fis = new FileInputStream("c:/temp/employeedata.txt");

xs.fromXML(fis, e);

發佈了17 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章