将java对象序列化为文本文件

我有一个java库,我想将一个java对象的实例保存到一个文本文件中。 我试图使用所有java库进行序列化和反序列化到xml: http://karussell.wordpress.com/2009/09/03/xml-serializers-for-java/http://karussell.wordpress.com/2009/09/03/xml-serializers-for-java/但反序列化不起作用。 我在这里发布了一个问题: http://stackoverflow.com/questions/6139702/deserializing-xml-file-from-xstreamhttp://stackoverflow.com/questions/6139702/deserializing-xml-file-from-xstream但似乎我无法得到解决方案。

我也尝试序列化为json但是从json反序列化不起作用。

所以,我想知道apart of serializing to xml and json ,是否有任何其他方法可以从java对象进行序列化和反序列化(无法修改以添加标记: @XmlRootElement(name="customer") )到文本文件?

提前致谢!

最简单的方法可能是使用本机Java序列化。 它将生成对象的二进制表示,但您可以使用Base64对生成的字节数组进行编码,以将其转换为文本:

 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(myObject); oos.flush(); byte[] binary = baos.toByteArray(); String text = Base64.encodeBase64String(binary); // Base64 is in the apache commons codec library // save text to a file 

请注意,对象及其引用的每个对象(递归地)必须实现java.io.Serializable才能使其正常工作。

您可以使用Gson将Java对象转换为Json,反之亦然

以下是Gson用户指南中的示例 。

或者可能是apache digester可以提供帮助。