私はノードを既存のXMLファイルに繰り返し追加する必要があるアプリケーションを1日を通して作成しています。ここで私が追加しようとしているノードのリストのサンプルです:AndroidでXMLファイルに繰り返し書き込む最も効率的な方法は何ですか?
<gx:Track>
<when>2012-01-21T14:37:18Z</when>
<gx:coord>-0.12345 52.12345 274.700</gx:coord>
<when>2012-01-21T14:38:18Z</when>
<gx:coord>-0.12346 52.12346 274.700</gx:coord>
<when>2012-01-21T14:39:18Z</when>
<gx:coord>-0.12347 52.12347 274.700</gx:coord>
....
これは数倍まで長い時間をかけて第二に起こることができると私は何の最高または最も効率的な方法は知っていただきたいと思いますそうしている。
これは私が今やっていることです:DocumentBuilderFactoryを使ってXMLファイルを解析し、コンテナノードを探し、子ノードを追加してから、TransformerFactoryを使ってSDカードに書き戻します。しかし、私は、ファイルが大きくなるにつれ、これはますます多くの時間を費やしていることに気付きました。
これは私が考えることができる唯一の方法です:ファイルを読み込み、.seek()をファイル内の特定の位置に使用するには、RandomAccessFileを使用します。私は、ファイルの長さに基づいて位置を計算し、私が追加しているものの後にファイルの長さを知っているものを減算します。
このメソッドはうまくいくはずですが、DocumentBuilderFactoryの使いやすさとは対照的に、少し鈍感です。
これを行うには良い方法がありますか?
xmlファイルの代わりにsqliteを使用しますか? – Peterdk
データベースは、この種のものにとって適切な解決策に見えるでしょう。必要な場合は、XMLファイルに変換することができます。 –
残念ながら、私は具体的にSDカードに常に存在するXMLファイルを必要としています。 – Mendhak