如何在android中保存数据结构?

Sim*_*mon 4 xml parsing android dom

我想存储来自这样的结构的一些数据:

class Project {
    ChildA a;
    ChildB b;
}

class ChildA {
    ChildC c;
    ...
}
...
Run Code Online (Sandbox Code Playgroud)

我创建的数据如下:

Projet x = new Project();
x.a = new ChildA();
x.a.c = new ChildC();
Run Code Online (Sandbox Code Playgroud)

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

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

如果没有,是否有任何说明如何在Android中使用解析器?

exh*_*uma 13

如果您希望其他Android应用程序可以访问您的数据,那么推荐的方法是编写内容提供程序.另一方面,如果您希望将数据用于非Android应用程序,则需要"导出"它.您必须自己编码.

我现在可以想到三个选择:

  1. 创建XML文件
    不幸的是,Android并不包括方便地创建XML文件所需的全部内容.最值得注意的是,javax.xml.transform它不可用,并且不建议添加平台类.这意味着你必须在你自己的"转换"课上写出来
  2. 创建JSON文件
    Android API很好地支持JSON.看到这里这里
  3. 创建Java序列化文件
    只要您的对象实现"Serializable"接口,就可以轻松地将它们写入文件.我自己从来不需要这样做,但它应该是直截了当的,并且应该在网上提供示例.(例如,Google提出了这个迷你教程)

私下存储文件时,请考虑使用openFileInputopenFileOutput.如果要明确存储在SD卡上,则应使用getExternalStorageDirectory()来检索根文件夹.

我个人的建议是使用JSON文件.这是一种简单的格式,适用于大多数情况,并且可以广泛使用.除了de /序列化是死的简单.