我想存储这样的结构中的一些数据:
class Project {
ChildA a;
ChildB b;
}
class ChildA {
ChildC c;
...
}
...
我创建了如下数据:
Projet x = new Project();
x.a = new ChildA();
x.a.c = new ChildC();
...我想将其保存到设备 SD 卡上的外部文件中,以便其他应用程序可以读取它(并且用户可以打开/复制它)。
我认为我应该使用 DOM 解析器,因为我的数据结构不是很大,但我没有找到教程或类似的东西。有没有更好的方法来存储这些信息?
如果没有,有没有关于如何在 android 中使用解析器的说明?
如果您希望其他 Android 应用程序可以访问您的数据,那么推荐的方法是编写内容提供商 http://developer.android.com/guide/topics/providers/content-providers.html#creating。另一方面,如果您希望数据在非 Android 应用程序中使用,则需要“导出”它。这个你必须自己编码。
我现在可以想到三个选择:
-
创建 XML 文件
不幸的是,Android 不包含方便创建 XML 所需的所有内容
文件。最值得注意的是,javax.xml.transform
不可用,正在添加平台
不建议上课。这意味着你必须自己写出来
“变换”类
-
创建 JSON 文件
Android API 很好地支持 JSON。看here http://developer.android.com/reference/org/json/package-summary.html and here http://www.json.org
-
创建Java序列化文件
只要你的对象实现了“Serialized”接口,那么它们就可以很容易地被
写出到文件。我从来不需要自己这样做,但它应该是
简单明了,并且应该可以在网上找到示例。 (举个例子,谷歌来了
与这个迷你教程 http://www.devx.com/Java/Article/9931/1954)
当您私密存储文件时,请考虑使用打开文件输入 http://developer.android.com/reference/android/content/Context.html#openFileInput(java.lang.String) and 打开文件输出 http://developer.android.com/reference/android/content/Context.html#openFileOutput%28java.lang.String%2C%20int%29。如果你想明确地存储在SD卡上,你应该使用获取外部存储目录() http://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()检索根文件夹。
我个人的建议是使用 JSON 文件。这是一种简单的格式,适用于大多数情况,并且广泛使用。除此之外,反序列化非常简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)