【问题标题】:How to save an array of Android Parcelable to a file?如何将 Android Parcelable 数组保存到文件中?
【发布时间】:2012-05-01 14:00:01
【问题描述】:

我有一个 Location 对象的 ArrayList。 ArrayList 通常有 从 1,000 到 10,000 个位置对象。

我希望能够持久化 ArrayList,然后将其读回 稍后。

我假设写出整个内容会快得多 Location 对象的 ArrayList 作为单个文件而不是存储 SQLiteDB 中的每个 Location 对象。

谁能给我看一些示例代码来读/写一个 ArrayList 定位对象,或提出更好的解决方案?

【问题讨论】:

    标签: android file outputstream persistent parcelable


    【解决方案1】:

    您真的必须存储所有 10k 位置,将它们全部删除并每次存储一组新的 10k 位置吗?或者只是偶尔做一些更新? (如删除或添加多行)。如果是后者,那么您希望使用 SQLite,因为使用 Db 执行这些操作会非常容易。

    另请注意,SQLite 也只是文件系统上的一个存储文件,例如,没有 MySQL 那样的数据库服务器。

    除此之外,这已经在 SO 上讨论过,所以你可能想看看这些:

    Android data storage - File vs SQLite

    Sqlite vs File based data storing?

    【讨论】:

    • 每个数据集都是一个固定集。没有插入,删除,没有搜索。在我看来,将列表或对象数组作为二进制数据保存到文件中,然后作为二进制数据读回比使用 AFAIK 基于文本文件的 SQLite 或 JSON 快得多。 Java 有 ObjectOutputStream 和 ObjectInputStream 来处理这样的情况;但我知道这些依赖于我理解的序列化在 Android 中非常慢。我希望在 Android 中有一些有效的 ObjectOutputStream 类比,但显然没有?
    • 你应该实现 Serializable.see this stackoverflow.com/questions/7135086/…
    • 如果您担心速度,我认为您最好的办法是针对您需要的数据类型测试解决方案并对结果进行基准测试。
    猜你喜欢
    • 2014-06-25
    • 2015-12-08
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多