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