如何使用java更改文件的特定部分?

时间:2014-05-24 08:29:32

标签: java xml io

我正在编写一个实现字典的程序。

实际上我所做的只是编写一个java applet来显示在.xml文件中定义的单词。我用org.w3c.dom包做到了。

现在,我想添加一个新功能,用户可以在程序中修改字典中的单词,然后修改将保存到原始的.xml文件中。

这是我的问题:我应该怎么做才能保存更改?请注意,用户一次只能修改一个单词,因此我不想加载整个文件并修改某个部分并将整个文件重新写入磁盘。有没有一种新颖的方法呢?

2 个答案:

答案 0 :(得分:1)

XML文件是顺序文本文件。这意味着没有公式或其他方便的方法来定位存储在XML中的字典中的第n个单词。元素需要逐个字符地逐个写入(并且一个字符可能会或可能不会产生一个字节)。因此,所谓的随机更新即将结束。

查看JAXB以获取读写XML的最便捷方式,并投入一些工作,以便用户无法在内存中更新并终止程序而不保存。

答案 1 :(得分:0)

以特定格式读取和写入文件比您描绘的内容有点棘手。

看到“XML眼睛”你只是改变了文件的一部分 - 但是要在文件级别上这样做,你需要seek到更改位置并从那里写新字节。问题在于之后那个位置的内容将不会根据您编写的新部分进行调整。

TL; DR - 否 - 您需要在进行更改时读取+写入完整的XML文件。