使用Java中的序列化将对象保存到文件

时间:2010-09-26 14:30:43

标签: java serialization collections

我在Collection中存储了大量数据 我想将此数据保存到文件中。使用序列化是一个好主意吗? 或者我应该使用自定义格式来保存数据,还是将其保存为XML?例如? (Collection中的元素是自定义类。我是否需要实现一个序列化对象的方法?)

3 个答案:

答案 0 :(得分:1)

您可以使用这两种方法。我宁愿将它们保存为XML,因为它不太可能在XML文件中存在数据损坏。 但是如果要使用序列化将自定义类保存到数据文件中,则需要在这些自定义类中实现Serializable接口。

答案 1 :(得分:0)

我是否需要实现一个序列化对象的方法?

为了序列化对象,您应该实现Serializable接口 OR 提供以下方法的实现,如果需要在序列化和反序列化过程中进行“特殊”处理。

- private void writeObject(ObjectOutputStream out) throws IOException;
- private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException;

您可以在oracle网站上找到有关序列化的更多详细信息。您可以访问http://java.sun.com/developer/technicalArticles/Programming/serialization/开始使用。

答案 2 :(得分:0)

我不会将序列化类写入磁盘。一旦JVM或任何库发生更改,它可能就没用了。这意味着在一个系统上创建的文件可能无法在另一个系统上运行!

相反,我会写一个文本版本的数据。如果你的集合包含其他集合或类,我会使用XML,因为它可以很好地处理嵌套。如果数据很简单,我可能只是编写一个带有标题行的逗号sep文件,包括版本号和数据集的描述,一行告诉列名,数据行和EOF行。