有关将对象保存到文件的准则

时间:2012-01-28 09:34:22

标签: java

我正在进行一项任务,就像一个拥有客户和不同账户的简单银行。现在我必须开发我的任务来将我的客户对象和帐户对象存储到文件中。我已经阅读了一些关于它的内容,我将使用ObjectOutputStream和ObjectInputStream。

由于我在arraylist中有所有客户对象,称为customerList,所有属于arraylist中客户的帐户对象,名为accountsList,我想知道我是否应该保存孔arraylist或者我应该单独保存所有对象?

当我要加载客户对象时,我是否应该再次将它们放入arraylist中以便能够访问它们,直到知道为止?寻找一个简单易懂的解决方案。准确的帮助!谢谢!

也许我可以创建一个循环并选择数组列表中的每个对象并将它们保存为对象。然后,当我要加载它们时,只需再次循环并加载它们并将它们添加到数组列表中!?

2 个答案:

答案 0 :(得分:1)

只要实现java.io.Serializable,您就可以保存(技术术语序列化)任何对象。 ArrayList实现Serializable,只要您的客户和帐户对象实现也实现Serializable接口,就没有问题。

使用ArrayList进行序列化的示例:http://www.javabeginner.com/uncategorized/java-serialization

注意: 存储长期(和生产)数据的更好方法是使用DBMS(RDBMS或NoSQL DB)系统。

答案 1 :(得分:1)

存储和加载整个arraylist比单个对象更容易。无论哪种方式,您都需要确保您的对象是可序列化的。

在非作业设置中,您可能会将一个帐户列表存储在一个单独的对象中,该对象包含所有持久应用程序状态。然后在启动时,您将读取状态,并将其存储在关闭状态。您应该确保您的类定义了一个串行版本uid,这样如果您更改其结构,您可以将新版本标记为与旧数据不兼容。

最后,银行数据应存储在可靠的数据库中。序列化机制用于短期存储,如通信协议,或用于相对不重要的数据,如浏览器历史记录或用户首选项。将其用于长期存储意味着您无法修改您使用的类或您可能会丢失数据。