2010-02-08 108 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