【问题标题】:Best way to save data for later use?保存数据以备后用的最佳方法?
【发布时间】:2012-06-02 23:50:56
【问题描述】:

将多个(大约 80 个)字段保存为单个实体的最佳方法是什么?我的应用程序创建了一个“程序”对象,它本身在一个数组中包含大约 75 个字符串、大约 4 个其他随机字符串和一个 int 字段。我希望能够保存这些,以便用户能够在 ListView 中查看有关每个程序的基本信息,然后单击其中一个以查看其余数据。

保存这些的最佳方法是什么?我一直在考虑将它们各自保存为自己单独的 XML 文件,但我也听说过数据库(尽管对于我正在尝试做的事情来说似乎有点多)。或者我应该将它们保存为常规的 .txt 文件并稍后解析它们?或者甚至只是将每个程序保存到一个 txt/xml 文件中,然后一起解析它们?还是我缺少一些更有效的东西?

【问题讨论】:

    标签: android xml data-storage


    【解决方案1】:

    你也可以看看ObjectOutputStream 类。它可以将对象that implements the Serializable interface 打印到文件或其他流中。

    所以你可以做一些事情,比如用这些字符串和 int 制作一个 ArrayList,然后将 ArrayList 写入一个文件。

    【讨论】:

      【解决方案2】:

      如果您不想担心光标或数据库管理,只需使用 SharedPreferences。我习惯于使用GSON 序列化/反序列化我的对象,这很容易设置并且效果很好。

      【讨论】:

        【解决方案3】:

        在您的情况下,将数据存储到 XML 文件中是最好的方法。 SQLite 数据库可用于更强大的工作。

        【讨论】:

        • 我的数据的结构方式,XML 文件确实看起来是最好的方式。您对如何解决这个问题有什么建议吗,例如特定的 XML 编写器/解析器?
        • 这个话题会有所帮助。有很多方法可以做你的工作。 stackoverflow.com/questions/2290945/writing-xml-on-android
        【解决方案4】:

        这取决于:

        如果你想要快速的东西 - 使用 SQLite 数据库。

        如果您想要一些易于实现(但速度较慢)的东西 - 使用 SharedPreferences

        【讨论】:

          【解决方案5】:

          只要您不创建大量对象,我会说序列化您的对象并以这种方式存储就足够了。 如果您发现自己创建了许多这样的对象,我建议您研究一个数据库实现来处理它们。

          【讨论】:

          • 是的,这是一种非常简单的方法,可以将 Java 数据结构放入持久存储中,而无需使用 XML 或 SQL。
          • 您认为什么是“实质性”?用户可以根据需要制作任意数量,所以很遗憾,我无法判断。
          • 好吧,在这种情况下,序列化并不是一个合适的选择,因为潜在对象的数量是不可预测的。我会说当它归结为大约的数字时,序列化是合适的(但不要将此数字视为任何类型的事实,它实际上取决于数据的类型以及对象的数量是否有限)1-10 .任何高于 10 的东西我都认为是实质性的。并且您拥有的对象包含相同类型和数量的字段这一事实使得使用 SQLite 数据库或 XML 编写器/解析器更加可行。
          猜你喜欢
          • 2013-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多