0

我真的迷路了,我试图找到解决 xml 解析、阅读和写作的方法。

我有这个应用程序,我可以在其中输入日期和时间等数据 - 单击保存,一旦保存,它将写入现有的 XML 文件,供以后阅读,并将其添加到末尾像这样的格式:

<Units>
 <item>
   <date>27-5-12</date>
   <time>15:30</time>
 </item>
 <item> 

   ... and so on ...

</Units>

我设法读取了一个 xml 文件,但是我在打开一个预制的现有文件进行读取或写入时确实遇到了麻烦。

目前我尝试了这段代码:

InputStream raw = this.getAssets().open("mydata.xml");
Reader is = new BufferedReader(new InputStreamReader(raw, "UTF8"));

返回文件未找到异常。

谁能指导我应该寻找什么?

谢谢。

4

2 回答 2

2

如前所述,您的源 XML 文件位于 APK 的资产目录中 - APK 中的所有内容都是只读的,因此您将无法写入该文件。(此外,您可能应该将该 XML 数据放入 res/xml 目录而不是 assets 目录,除非您有令人信服的理由不这样做。)

如果 XML 文件不是很长/很复杂,您可以将资产文件读入一个结构,然后将您的新数据添加到该结构中,然后将一个新的 XML 文件写入您的应用程序的数据目录,其中包含更新的数据。这种方法的优点是您可以将多个源文件馈送到每个应用程序的一个主文件中。

一个更灵活和开放的选项是设置一个数据库表。首次安装应用程序时,您使用资产文件中的数据加载/更新表。随着您的应用程序不断添加时间戳数据,您只需向表中添加新行。这种方法还有一个优点,即您可以轻松地在每次应用程序更新时更新源数据或数据库结构——如果它以 XML 格式在内部存储,则更难比较新旧数据。

于 2012-10-05T01:09:24.977 回答
0

我没有在我的项目中看到资产文件夹,我将我的 xml 文件放在那里,它现在可以工作了:)

于 2012-10-05T01:20:37.163 回答