使用RandomAccessFile在中间插入文本会在此之后删除一些文本

我的样本代码

    String line = null;

RandomAccessFile file = new RandomAccessFile("D:/mahtew.txt", "rw");

System.out.println(file.getFilePointer());

while((line = file.readLine()) != null){

System.out.println(line);

System.out.println(file.getFilePointer());

if(line.contains("Text to be appended with")){

file.seek(file.getFilePointer());

file.write(" new text has been appended".getBytes());

break;

}

}

file.close();

执行前要演示

one two three

Text to be appended with

five six seven

eight nine ten

执行后的demo.txt

one two three

Text to be appended with

new text has been appendedten

我也尝试使用setLength来更改文件的长度,然后再添加新文本。但是仍然从输出文件中修剪了一些文本。任何帮助将不胜感激

谢谢马修

回答:

RandomAccessFile

随机访问文件的行为就像存储在文件系统中的大字节数组一样。

实际上,在写操作的情况下它并不关心移动数组元素(仅 指针 是先进的)。这样的操作将覆盖现有值:

输出操作从文件指针开始写入字节,然后将文件指针向前移动超过写入的字节。

以上是 使用RandomAccessFile在中间插入文本会在此之后删除一些文本 的全部内容, 来源链接: utcz.com/qa/414245.html

回到顶部