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

标签 java

我有一个 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/

相关文章:

java - java中如何仅在前一个函数完全执行后才调用一个函数

java - 如何设置CameraX(Android)5秒后停止录制?

java.util.NoSuchElementException : No line found ; error when I have a new variable each time for input

java - 如何允许在 JOptionPane 中输入字符串

java - 有没有办法在 Oracle 11g XE 上安装 java?

java - 使用 Playframework 持久化多对多对象

java - 如何操作Java小程序网页的DOM

java - JTable动态改变行高

java - 柜台忙碌等待

java - Java中的字符串比较顺序