[英]How to write text to a next empty line in text file in java
package ideat;
import java.nio.file.Paths;
import java.io.FileWriter;
import java.util.Scanner;
public class Paaohjelma {
public static void main(String[] args) {
try {
Scanner tLuk = new Scanner(Paths.get("ideat.txt"));
FileWriter tKirj = new FileWriter("ideat.txt");
for (String line = tLuk.nextLine(); line.isBlank(); tKirj.append("\n")) {
tKirj.write("textHere");
}
tKirj.close();
tLuk.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
我創建了一個循環遍歷 txt 文件,直到找到要寫入的空行,但這不起作用,因為當 Scanner 嘗試讀取下一行為空時,java 不會引發下一行異常。 該程序的目的是將新想法添加並保存到文本文件中,這就是我不想覆蓋現有文本行的原因。
一旦您以寫入模式打開正在讀取的文件,讀取的文件描述符就會損壞。 它可能沒有損壞,但是一旦寫了一些東西,它就會被損壞,尤其是當描述符讀取的內容被覆蓋時。
所以,你應該采取重寫和替換的方法:
try {
Scanner tLuk = new Scanner(Paths.get("ideat.txt"));
FileWriter tKirj = new FileWriter("ideat.txt.tmp");
while (tLuk.hasNextLine()) {
String line = tLuk.nextLine();
if (line.isBlank()) {
tKirj.write("textHere");
} else {
tKirj.write(line);
}
}
tKirj.close();
tLuk.close();
} catch (Exception e) {
然后,將文件ideat.txt
替換為ideat.txt.tmp
。
Files.move(
Paths.get("ideat.txt.tmp"),
Paths.get("ideat.txt"),
StandardCopyOption.REPLACE_EXISTING
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.