可以在文件中写入和读取对象吗?

时间:2010-12-19 05:00:56

标签: java object

我认为答案是肯定的,但我只想确定。

任何人的帮助将不胜感激

7 个答案:

答案 0 :(得分:9)

是的,它被称为serialization。它通常涉及创建类的数据的String表示,然后创建一个方法,该方法可以解析保存的数据以重新创建等效的Object。保存和恢复的代码可以是Object的类的一部分,也可以在更大的框架中的其他地方提供。

答案 1 :(得分:2)

对象本身无法真正存储到文件中。如果需要,可以将对象中的数据序列化为某种文档,例如XML文件。您可以定义数据在其中的存储方式。然后,当您想要阅读它时,您只需打开并将XML文档解析回对象,与保存它的方式相反。

http://java.sys-con.com/node/37550

答案 2 :(得分:2)

序列化是将对象状态转换为字节序列的过程。这些字节然后可以作为文件存储在磁盘上,或者通过套接字发送或作为BLOB等存储在DB中。反向过程称为反序列化。

并非所有对象都可以序列化。只有实现Serializable接口的那些。 Read here了解更多详情。

有各种序列化类型,如二进制序列化(紧凑,更快等),文本序列化(较慢,可能需要更多空间但人类可读)。

Java的序列化格式不可移植且存在一些问题。 Java的本机序列化有更好的替代方案。根据您的要求,您可以选择最好的一个。这里有一些protobufthrift,json,xml,YAML

答案 3 :(得分:1)

除了已经提到的默认JDK序列化和XML序列化(使用建议的XStream,或更快的JAXB)(包含在JDK 6中,请参阅包'javax.xml.bind'),还有许多其他选择。

例如,使用Jackson的JSON序列化非常有效,并且比XML序列化更紧凑和可读(后者当然是主观的)。

答案 4 :(得分:0)

答案 5 :(得分:0)

绝对!像其他人指出的那样,它被称为序列化。看看XStream library。我认为序列化为XML非常棒。它在我的项目中帮了我很多忙,而且非常非常容易使用。

答案 6 :(得分:0)

要使用默认序列化,类必须实现Serializable接口