【发布时间】:2021-03-07 11:19:02
【问题描述】:
场景:我想在文件中的特定行追加文本。
面临的问题:附加的文本总是添加到最后一行。
文本文件中的示例:
之前
line 1
line 2
line 3
之后(我希望成为)
line 1
line 2
line 2.1
line 3
实际情况
line 1
line 2
line 3
line 2.1
下面是我的代码
public static void main(String args[]) throws IOException {
try (FileWriter f = new FileWriter("Test.txt", true);
BufferedWriter b = new BufferedWriter(f);
PrintWriter p = new PrintWriter(b);) {
File files = new File ("Test.txt");
Scanner scanner = new Scanner(files);
while(scanner.hasNext()) {
String line = scanner.nextLine();
if(line.contains("line 2")) {
p.println("line 2.1"); // I wish that "line 2.1" will be printed after the line of "line 2", but it don't
}
}
}
}
有什么方法可以直接在文件中实现这个功能?谁能给我一个例子? 非常感谢!
【问题讨论】:
-
也许我在这里遗漏了一些东西,但是您的示例输入中的所有行都不包含子字符串“see”。
-
你是对的。抱歉,我已经编辑过了
-
你能把文件读成字符串吗?
-
是的,文件中的文本在下面的代码中逐行读入名为“line”的字符串中
-
我的意思是,它是否足够小以适合内存?