代码之家  ›  专栏  ›  技术社区  ›  user

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

  •  1
  • user  · 技术社区  · 14 年前

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

    3 回复  |  直到 14 年前
        1
  •  0
  •   Tony Ennis    14 年前

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

    相反,我会编写数据的文本版本。如果您的集合包含其他集合或类,我将使用XML,因为它处理嵌套很好。如果数据很简单,我可能只写一个逗号sep文件,文件的标题行包括版本号和数据集的描述,一行说明列名、数据行和eof行。

        2
  •  1
  •   Nuwan    14 年前

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

        3
  •  0
  •   Andreas    14 年前

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

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

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

    您可以在Oracle站点上找到有关序列化的更多详细信息。你可以去看看 http://java.sun.com/developer/technicalArticles/Programming/serialization/ 开始吧。