2013-04-08 33 views
0

我有一個Java應用程序使用默認的Java對象序列化(ObjectOutputStream等)將對象樹保存到文件。這工作很好。使用版本控制保存Java對象樹?

當我將對象添加到對象樹中的對象時,會出現問題。當我現在加載舊的對象樹時,我得到一個ClassException,這當然是有道理的,因爲對象/類改變了,舊類與新類不匹配。

現在我可以編寫不同版本的加載方法,以便它可以處理舊的對象樹,但我懷疑這可能變得不容易管理和維護。

我想知道是否有更好的方法來保存支持版本控制的java對象樹?

+0

您可以在Serializable類中使用'readObject'和'writeObject'方法來定義從文件序列化/反序列化對象時的默認行爲。 – 2013-04-08 14:19:54

+2

我不會使用Java序列化進行長期存儲。我會使用數據庫或XML或JSON或任何其他可解析且易於遷移的格式。 – 2013-04-08 14:21:46

回答

0

使用的readObject() 和writeObject()的ObjectInputStream和ObjectOutputStream的類 方法在Serializable類 以定義從 您的文件序列化/反序列化對象時的默認行爲ObjectOutputStream oos = new ObjectOutputStream(file/path/url); oos.writeObject(serialized Object); oos.close(); oos.flush(); ObjectInputStream ois = new ObjectInputStream(file/path/url/request); Object obj =(TypeCast to appropriate Object)ois.readObject();