我有一个250行的文件。我想在第128行之后插入一些文字。
我只发现我可以在文件末尾附加一个文本 喜欢
try {
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("outfilename", true)));
out.println("the text");
out.close();
} catch (IOException e) {
//oh noes!
}
可在此帖How to append text to an existing file in Java
找到但没有提及行号或某事。
答案 0 :(得分:5)
由于文件系统的工作方式,无法在文件中间插入文本。它们实现操作以修改文件的数据块,以及添加和删除文件末尾的块。由于inherent complexities of these operations,他们未实现的是在其他任何地方添加或删除数据块。
您需要做的是将前125行复制到新文件,添加要添加的内容,然后复制文件的其余部分。如果您愿意,可以将新文件重命名为旧文件,这样就不会累积临时文件。
答案 1 :(得分:1)
您可以读取原始文件,并在插入新行的临时文件中写入内容。然后,删除原始文件并将临时文件重命名为原始文件名。
答案 2 :(得分:0)
以下代码可以帮助您在现有文件的给定位置插入给定字符串:
public static void writeStrToFileAtGivenLineNum(String str, File file, int lineNum) throws IOException {
List<String> lines = java.nio.file.Files.readAllLines(file.toPath());
lines.add(lineNum, str);
java.nio.file.Files.write(file.toPath(), lines);
}