2010-02-08 433 views
5

我有一套複雜的數據模型,目前正在實施java.io.Serializable,並且我已經成功地使用ObjectOutputStreamObjectInputStream對它們進行序列化和反序列化。Java:序列化/反序列化到XML /而不是二進制

但是,結果是二進制文件(如預期的那樣),我想知道Java是否支持以非二進制格式(例如XML)的相同方式進行序列化和反序列化。


我看到C#有這個功能:XML vs Binary performance for Serialization/Deserialization

在這種情況下,性能速度/效率不是考慮因素。

回答

4

是的,Java有它,它被稱爲XML編碼。看看here

的方法是非常相似的正常序列..

5

此外,我建議你看看SimpleXStream框架。我發現兩個都很好。您可以選擇使用其中任一個,也可以按照Jack的建議使用XmlEncoder。

+0

我也在爲XStream而戰。 – aberrant80 2010-02-08 03:15:12

+0

如果XStream性能高得多,最壞的情況是它的速度提高2倍,那麼簡單一點。此外,對於非常大的對象圖簡單節拍Java對象序列化。 – 2010-03-11 11:30:05