【问题标题】:Where to store simple data files (xml formatted) in android app? [duplicate]在android应用程序中存储简单数据文件(xml格式)的位置? [复制]
【发布时间】:2012-03-12 10:56:27
【问题描述】:

可能重复:
where to place an xml file with data in app

我对 android 开发者有点陌生。我将与我的应用程序相关的数据存储在 XML 文件中。我正在尝试使用 SAX 解析器来读取/写入/编辑该 xml 文件的数据。

存储此 xml 文件的合适位置在哪里?在 assets/res/some-other 文件夹中? (我想使用内存)

将应用数据保存到内存有什么问题吗?这个应用程序不会有大量数据。我需要根据用户操作读取/写入/修改此 xml 文件。 (我读到我们不能在运行时编辑资产中的文件!!)

给定一个特定目录,我如何使用 InputStream 访问它以将其提供给 SAX XMLReader?

【问题讨论】:

标签: android xml sax


【解决方案1】:

如果您还想编写文件,我认为您不能在 /res 或 /assets 中执行此操作。看看 android 数据存储选项。例如,您可以将 XML 文件写入内部存储。

http://developer.android.com/guide/topics/data/data-storage.html

【讨论】:

  • 谢谢。不是 res/xml 或 assets 文件夹被视为内部数据存储吗?
【解决方案2】:

是的,您可以将 xml 文件存储在资产中。 但我建议你在 /res/ 中创建一个文件夹名称 XML。它将帮助您轻松地使用 id "R.xml.xml_file" 使用它。

【讨论】:

  • 谢谢。我发现使用 res/xml 文件夹对 SAX 解析器有一些问题。我遇到了一个异常,例如 org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: not well-formed (invalid token)。但是当我将文件更改为 res/raw 文件夹时,它的工作很奇怪。这没有意义,但可以节省很多时间。我使用的代码是.. InputStream fstream = getResources().openRawResource(R.raw.data);我将此 InputStream 传递给 SAX 实现的 XMLReader。希望这对某人有所帮助。
  • 是的,它肯定会帮助别人。
【解决方案3】:

虽然这完全取决于您的要求,但我建议最好使用 getDir(String dirName, int mode) 创建一个目录并将您的 xml 存储在这里。

以上可用于动态存储数据意味着当应用程序运行时。但是如果您的应用程序已经有 xml 文件,最好将其存储在资产文件夹中,因为您可以在此处轻松创建子目录。

【讨论】:

  • 谢谢。我将只有一个 xml 文件。我必须读/写/编辑那个文件。任何建议哪个选项更好且易于处理1)res / sub-folder 2)assests 3)U所说的其他目录??
  • 我建议以下步骤: 1. 将您的 xml 放在资产文件夹中 2. 在设备/模拟器中编译并上传您的 apk 并在第一次运行时,将此 xml 从资产复制到特定于您的应用程序使用 getDir 方法并开始读/写相同的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 2015-04-29
相关资源
最近更新 更多