我认为答案是肯定的,但我只想确定。
任何人的帮助将不胜感激
答案 0 :(得分:9)
是的,它被称为serialization。它通常涉及创建类的数据的String表示,然后创建一个方法,该方法可以解析保存的数据以重新创建等效的Object。保存和恢复的代码可以是Object的类的一部分,也可以在更大的框架中的其他地方提供。
答案 1 :(得分:2)
对象本身无法真正存储到文件中。如果需要,可以将对象中的数据序列化为某种文档,例如XML文件。您可以定义数据在其中的存储方式。然后,当您想要阅读它时,您只需打开并将XML文档解析回对象,与保存它的方式相反。
答案 2 :(得分:2)
序列化是将对象状态转换为字节序列的过程。这些字节然后可以作为文件存储在磁盘上,或者通过套接字发送或作为BLOB等存储在DB中。反向过程称为反序列化。
并非所有对象都可以序列化。只有实现Serializable接口的那些。 Read here了解更多详情。
有各种序列化类型,如二进制序列化(紧凑,更快等),文本序列化(较慢,可能需要更多空间但人类可读)。
Java的序列化格式不可移植且存在一些问题。 Java的本机序列化有更好的替代方案。根据您的要求,您可以选择最好的一个。这里有一些protobuf,thrift,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接口