如何限制原始数据保存在文本文件中

时间:2011-08-16 05:01:00

标签: java

我正在用Java开发一个小应用程序。在某些时候我需要将我的自定义类的对象保存到我的自定义类中的i覆盖toString()方法的文本文件中,然后使用ObjectOutputStream类将我的自定义类的对象保存到文本文件。现在一切正常,即我的文本文件包含文本,但随着文本,它也包含一些奇怪的字符或原始数据。以下三行包含该主要代码

ObjectOutputStream outputStream = null;
outputStream = new ObjectOutputStream(new FileOutputStream(filename));
outputStream.writeObject(person);//person is the instance of my custom class

有没有办法限制将原始数据保存在我的文本文件中?

2 个答案:

答案 0 :(得分:3)

ObjectOutputStream序列化您传递给writeObject()的对象。它不会写入对象的文本版本。如果要将toString()返回的值写入文件,则使用类似FileWriter的文件打开文件,通过调用toString()方法获取String,然后将其写入FileWriter。

答案 1 :(得分:1)

根据您的需要,您应该查看XML序列化库,例如JAXBXStream

上面给出的解决方案只会将对象的字符串表示保存到文件中(这可能是你想要的)但我想如果你想将一个对象保存到一个文件中,它可能能够访问它之后。

JAXB和XStream都提供了在XML中序列化/反序列化Java对象的方法。使用XStream(也许还有JAXB,我不知道),如果你需要更紧凑的东西,你甚至可以用JSON序列化/反序列化你的对象。