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 の assets ディレクトリにあります。APK 内のすべてが読み取り専用であるため、そのファイルに書き込むことはできません。(また、やむを得ない理由がない限り、その XML データを assets ディレクトリではなく res/xml ディレクトリに配置する必要があります。)

XML ファイルがそれほど長くないか複雑でない場合は、アセット ファイルを構造に読み取り、新しいデータをその構造に追加して、更新されたデータを含む新しい XML ファイルをアプリのデータ ディレクトリに書き込むことができます。このアプローチには、アプリごとに複数のソース ファイルを 1 つのメイン ファイルにフィードできるという利点があります。

より柔軟で制限のないオプションは、データベース テーブルをセットアップすることです。アプリを最初にインストールするときに、アセット ファイルのデータを使用してテーブルを読み込み/更新します。アプリはタイムスタンプ付きのデータを追加し続けるため、新しい行をテーブルに追加するだけです。このアプローチには、アプリの更新ごとにソース データまたはデータベース構造を簡単に更新できるという利点もあります。XML 形式で内部に保存されている場合、古いデータと新しいデータを比較するのは困難です。

于 2012-10-05T01:09:24.977 に答える
0

プロジェクトにアセット フォルダーが表示されませんでした。そこに xml ファイルを配置したところ、動作するようになりました :)

于 2012-10-05T01:20:37.163 に答える