我有一个 java 库,我想将一个 java 对象的实例保存到一个文本文件中。我尝试使用所有 java 库对 xml 进行序列化和反序列化:http://karussell.wordpress.com/2009/09/03/xml-serializers-for-java/
但反序列化没有工作。我在这里发布了一个问题:http://stackoverflow.com/questions/6139702/deserializing-xml-file-from-xstream
但似乎我无法找到解决方案。
我也曾尝试序列化为 json
但从 json 反序列化不起作用。
所以,我想知道除了序列化为 xml 和 json
,还有没有其他方法可以从 java 对象进行序列化和反序列化(不能修改以添加标签:@ XmlRootElement(name="customer")
) 到文本文件?
提前致谢!
最佳答案
最简单的方法可能是使用 native 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
才能正常工作。
关于java - 将java对象序列化为文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6160848/