用Java写入随机访问文件而不覆盖

时间:2015-05-19 13:02:34

标签: java randomaccessfile

在随机访问文件中,在特定字节位置,将覆盖要插入的新文本。如何修改write方法以便在现有值之间插入新文本而不覆盖?

我知道有可能转移,但我知道逻辑如何。请帮我解释逻辑

2 个答案:

答案 0 :(得分:2)

你不能。这不是随机访问文件的工作方式。这不是文件的一般工作方式

如果要将字符插入文件,则需要重写文件。安全的方法是通过编写一个包含更新内容的临时名称的新文件来执行此操作,然后删除旧文件并重命名临时文件。

  

我知道可以转移,但我知道逻辑是什么。

首先,"转移"涉及在插入点之后覆盖字符。

其次,"转移"是一项危险的行动。如果应用程序被中断,或者当您处于" shift"中间时系统出现故障/关闭电源。操作,您可能会破坏文件。

答案 1 :(得分:1)

这与C中的答案相同:你不能,文件系统不允许这样做。 看到: C function to insert text at particular location in file without over-writing the existing text