我有一个包含多行的文本文件。
Line 1
Line 2
Line 3
Line 4
...
我试图用一个新句子代替第3行。
我使用下面的代码,但不是替换它,而是在它旁边添加新句子以及其余的文本。我需要删除它并将新句子放在同一个地方,然后继续写其余的行。我该怎么办?
try {
PrintWriter out = new PrintWriter(new FileWriter(filenew, true));
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.contains(line 2)) {
line = line.replaceAll("", "new sentence");
}
out.write(line);
out.write("\n");
}
out.flush();
out.close();
scanner.close();
}
catch (IOException e) {
e.printStackTrace();
}
提前致谢!
答案 0 :(得分:2)
您正在寻找的循环类似于
String targetText = "... the text to search";
String replacement = "The new text";
PrintWriter out = mkPrintWriter(/*...*/);
while (in.hasNextLine()) {
String line = in.nextLine();
if (line.equals(targetText)) {
out.println(replacement);
} else {
out.println(line);
}
}
请注意,out文件是临时资源。处理完毕后,您可以取消链接旧文件并重命名临时文件。
答案 1 :(得分:-1)
更改
line = line.replaceAll("", "new sentence");
到
line = line.replaceAll(line 2, "new sentence");