我正在编写一个应用程序,它需要将节点重复地添加到现有的XML文件,整天。这里是节点列表,我想追加的样本:在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卡。但是,我注意到,随着文件越来越大,这需要越来越多的时间。
我试图想到一个更好的方法,这是我能想到的唯一的事情:使用RandomAccessFile加载文件并使用.seek()到文件中的特定位置。我会根据文件长度计算位置,并在我追加的内容后减去我所知道的文件长度。
我很确定这种方法可以工作,但与使用DocumentBuilderFactory的方便性相比,它感觉有点盲目。
有没有更好的方法来做到这一点?
我会说:使用sqlite而不是xml文件? – Peterdk
数据库似乎是这种事情的正确解决方案。如果您需要它,您可以在需要时将其转换为XML文件。 –
不幸的是,我特别需要XML文件始终在SD卡上,这是一个不变的要求。 – Mendhak