当前位置: 首页 > 面试题库 >

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

皮景龙
2023-03-14
问题内容

我有一个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但是看来我无法为此找到解决方案。

我也尝试过序列化到jsonjson ,但是从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才能正常工作。



 类似资料:
  • 问题内容: 我想将一个对象写入CSV文件。对于XML,我们有XStream的像这样 所以,如果我想转换对象CSV我们是否有任何这样的图书馆吗? 编辑: 我想将我的Bean列表传递给应该将Bean的所有字段都写入CSV的方法。 问题答案: 首先,序列化是将对象“按原样”写入文件。AFAIK,您不能选择文件格式和全部。序列化的对象(在文件中)具有自己的“文件格式” 如果要将对象(或对象列表)的内容写入

  • 问题内容: 假设您有一些AppendObjectOutputStream类(这是一个ObjectOutputStream!),它重写了writeStreamHeader(),如下所示: 现在,假设您打算将多个对象保存到一个文件中。程序每次运行时,一个对象。即使在第一次运行时,您是否也会使用AppendObjectOutputStream()? 问题答案: 您必须首先使用常规ObjectOutput

  • 假设您有一些AppendObjectOutputStream类(这是一个ObjectOutputStream!)将重写writeStreamHeader(),如下所示: 现在,假设您计划将多个对象保存到一个文件中;每次程序运行一个对象。即使在第一次运行时,您也会使用AppendObjectOutputStream()吗?

  • 问题内容: 如何在JavaScript中将对象序列化为JSON? 问题答案: 您正在寻找。

  • 问题内容: 因此,当我偶然发现新的JsonSerializable Interface 时,我在php.net上四处徘徊,以获取有关将PHP对象序列化为JSON的信息。它只是 PHP > = 5.4,而我正在5.3.x环境中运行。 PHP <5.4如何实现这种功能? 我还没有使用JSON进行很多工作,但是我试图在应用程序中支持API层,并且将数据对象( 否则将发送到视图 )转储到JSON中将是完美

  • 问题内容: 我有由第三方编码为固定长度数组的json’ed 元组数组: 我想使用json魔术来获取的实例列表 请帮助我放置适当的注释,以使ObjectMapper发挥作用。 我无法控制传入的格式,而我所有的google’n都以答案来回答如何将适当的json对象(而非数组)数组映射到对象列表 问题答案: 添加以下注释: 并且它应该根据需要序列化条目。 另外:然后使用它来强制执行特定顺序是最安全的,因