在Java中写入随机访问文件而不重写

在Java中写入随机访问文件而不重写,java,randomaccessfile,Java,Randomaccessfile,在随机存取文件中,在特定字节位置,要插入的新文本被覆盖。如何修改write方法,以便在现有值之间插入新文本而不覆盖 我知道改变是可能的,但我知道逻辑是怎样的。请帮我解释一下逻辑,这和C中的答案是一样的:你不能,文件系统不允许这样做。 见: 你不能。这不是随机访问文件的工作方式。一般来说,文件不是这样工作的 如果要在文件中插入字符,则需要重写该文件。安全的方法是使用临时名称编写一个包含更新内容的新文件,然后删除旧文件并重命名临时文件 我知道改变是可能的,但我知道逻辑是怎样的 首先,“移位”包括覆

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


我知道改变是可能的,但我知道逻辑是怎样的。请帮我解释一下逻辑,这和C中的答案是一样的:你不能,文件系统不允许这样做。 见:
你不能。这不是随机访问文件的工作方式。一般来说,文件不是这样工作的

如果要在文件中插入字符,则需要重写该文件。安全的方法是使用临时名称编写一个包含更新内容的新文件,然后删除旧文件并重命名临时文件


我知道改变是可能的,但我知道逻辑是怎样的

首先,“移位”包括覆盖插入点后的字符

其次,“转移”是一种危险的操作。如果应用程序被中断,或者当您处于“移位”操作的中间时系统失败/断电,您可能会损坏文件。