【问题标题】:How do I save data structures in android?如何在android中保存数据结构?
【发布时间】:2010-12-01 04:03:08
【问题描述】:

我想从这样的结构中存储一些数据:

class Project {
    ChildA a;
    ChildB b;
}

class ChildA {
    ChildC c;
    ...
}
...

我创建了如下数据:

Projet x = new Project();
x.a = new ChildA();
x.a.c = new ChildC();

...我想将它保存到我设备 sdcard 上的外部文件中,以便其他应用程序可以读取它(并且用户可以打开/复制它)。

我认为我应该使用 DOM 解析器,因为我的数据结构不是很大,但我找不到任何教程或类似的东西。有没有更好的方法来存储这些信息?

如果没有,有没有说明如何在android中使用解析器?

【问题讨论】:

    标签: xml android dom parsing


    【解决方案1】:

    如果您希望其他 Android 应用程序可以访问您的数据,那么推荐的方法是编写 Content Provider。另一方面,如果您希望您的数据在非安卓应用程序中使用,您将需要“导出”它。这你必须自己编码。

    我现在能想到三个选项:

    1. 创建 XML 文件
      不幸的是,Android 不包含方便地创建 XML 所需的所有内容 文件。最值得注意的是,javax.xml.transform 不可用,并且添加平台 不推荐上课。这意味着你必须自己写出来 “转换”类
    2. 创建 JSON 文件
      Android API 很好地支持 JSON。见herehere
    3. 创建 Java 序列化文件
      只要您的对象实现了“Serializable”接口,那么它们就可以轻松实现 写入文件。我从来不需要自己这样做,但它应该是 直截了当,示例应该可以在网上找到。 (例如,谷歌来了 this mini-tutorial)

    当您私下存储文件时,请考虑使用openFileInputopenFileOutput。如果要显式存储在 SD 卡上,应使用 getExternalStorageDirectory() 检索根文件夹。

    我个人的建议是使用 JSON 文件。这是一种简单的格式,适用于大多数情况,并且可以广泛使用。除此之外,反序列化非常简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多