【发布时间】:2015-05-19 13:02:33
【问题描述】:
在随机存取文件中,在特定字节位置,要插入的新文本被覆盖。如何修改write 方法,以便在现有值之间插入新文本而不覆盖?
我知道可以转换,但我知道逻辑如何。请帮我解释一下逻辑
【问题讨论】:
标签: java randomaccessfile
在随机存取文件中,在特定字节位置,要插入的新文本被覆盖。如何修改write 方法,以便在现有值之间插入新文本而不覆盖?
我知道可以转换,但我知道逻辑如何。请帮我解释一下逻辑
【问题讨论】:
标签: java randomaccessfile
你不能。这不是随机访问文件的工作方式。这不是文件一般的工作方式。
如果你想在文件中插入字符,你需要重写文件。安全的方法是编写一个带有临时名称的新文件,其中包含更新的内容,然后删除旧文件并重命名临时文件。
我知道可以转换,但我知道逻辑如何。
首先,“移位”涉及覆盖插入点之后的字符。
其次,“换档”是一种危险的操作。如果应用程序被中断,或者系统发生故障/在您进行“移位”操作时断电,您很可能会损坏文件。
【讨论】:
这与 C 中的答案相同:您不能,文件系统不允许这样做。 看: C function to insert text at particular location in file without over-writing the existing text
【讨论】: