使用序列化对象列表

问题描述:

我正在学习Android/Java编程,但我对持久数据感到困惑。 经过大量研究,似乎存储对象的最佳方式是将它们序列化到一个文件中,但我找不到一种简单的方法来检索这些对象。使用序列化对象列表

如果我创建了两个对象并保存了它们的序列化版本,我该如何重新列出并列出它们?我是否需要为文件名中具有特定ID的每个对象创建一个文件,以便我可以用getFilesDir列出它们?

+0

很高兴提供帮助。如果其中一个问题解决了您的问题,请标记接受的答案。它可以让具有相同问题的其他人更快找到帮助,并让我们知道我们帮助了您。 – 2012-02-18 17:15:10

取决于这些对象的复杂程度(我猜你的个人喜好),我之前使用SharedPreferences存储简单对象,只是为了简单起见,而同事大量使用SQLite,但适合于他的需求。

既然您没有说明存储的内容,我现在可以给您的最好的建议是读取here,它涵盖了Android应如何处理持久数据。

+0

+1这是正确的地方开始工作你的方式解决方案 – slezica 2012-02-18 00:53:15

+0

谢谢,它帮助我 – mobidyc 2012-02-18 10:47:06

“最好”的方式?请定义您的标准。

有数据库(关系型和非关系型)或文件系统。您可以序列化很多方法:Java序列化,XML,Google的protobuf等等。

是的,你需要一种方法来指定一个唯一的表示与其对象。在关系数据库中,您将使用主键。在你使用的任何系统中你都需要这样的东西。

如果您通过某种机制序列化到文件系统,则必须将对象写入所需的格式并将其流式传输到文件。换一种方式,为对象指定关键字,读取序列化的数据,并将其解析回对象中。

+0

最好的方式,因为序列化存储整个对象。如果将来在对象中添加或删除组件,我不需要关心存储这个组件。然而,我已经看过不同的开源项目,并且SharedPreferences似乎是满足我需求的好方法。 – mobidyc 2012-02-18 10:46:26