如何在文本文件中间追加和删除数据,使用java代码转移剩余的文件内容?

时间:2014-06-14 05:36:38

标签: java file-io

我正在使用RandomAccessFile,但writeBytes()会覆盖 现有内容主要是我想在不使用任何新内容的情况下实现这一点 临时文件至少方法名称很少线索或技术会做。

1 个答案:

答案 0 :(得分:0)

要在不使用任何临时文件的情况下插入,您必须找到一种方法来读入并在插入新行时将所有后续行向下移动一行。 文本行的顺序存储带来了与标准数组(与LinkedList)的使用相同的问题:您不能解开指针,在某些文本中删除,然后连接指针到下一个项目以指向文件中的后续行。你必须执行整个班次。

所以我猜你想要到文件末尾,将它向下移动一行,然后向上移动每一行并执行相同的移动直到你到达你想要的位置插入新行,此时,您将为其清除空间。

这看起来非常低效。

希望有人知道更好的方法,但这将是我的方法,暂时不是一个选项。

(或者,如果它足够小,你也可以随时将整个事物读入StringBuffer,在其中执行插入,然后从头开始写回文件,但我想你已经考虑过了那个选项已经。)