使用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 threeText to be appended with
five six seven
eight nine ten
执行后的demo.txt
one two threeText to be appended with
new text has been appendedten
我也尝试使用setLength来更改文件的长度,然后再添加新文本。但是仍然从输出文件中修剪了一些文本。任何帮助将不胜感激
谢谢马修
回答:
RandomAccessFile
随机访问文件的行为就像存储在文件系统中的大字节数组一样。
实际上,在写操作的情况下它并不关心移动数组元素(仅 指针 是先进的)。这样的操作将覆盖现有值:
输出操作从文件指针开始写入字节,然后将文件指针向前移动超过写入的字节。
以上是 使用RandomAccessFile在中间插入文本会在此之后删除一些文本 的全部内容, 来源链接: utcz.com/qa/414245.html