【发布时间】:2013-03-17 13:58:13
【问题描述】:
我的示例代码
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();
执行前的demo.txt
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 呢?为什么不简单地读取文件,使用包装在 BufferedReader 中的 FileReader,更改字符串,然后使用包装在 PrintWriter 中的 FileWriter 写入新文件?