将一行追加到现有文本文件中,但会添加额外的空行



我正在尝试向现有的文本文件添加新行,这很有效,但有时会在旧数据和新数据之间添加空行

所以我有一个包含数据的文件:

mouse
keyboard

当添加时,它会这样添加:

mouse
keyboard
printer

但我不希望新旧文本之间有空行。这是我使用过的代码:

String filename= "Stock.txt"
FileWriter fw = new FileWriter(filename,true);
fw.write(System.lineSeparator() + data);
fw.close();

缓冲区读取器和缓冲区写入器是读取和写入文件时首选的类。

你可以通过几种方式来实现这一点。

示例1-使用手动关闭的File、FileWriter和BufferWriter类:

File file = new File("Stock.txt");
FileWriter fr = new FileWriter(file, true);
BufferedWriter br = new BufferedWriter(fr);
br.write(data + "n");
br.close();
fr.close();

示例2-将File、FileWriter和BufferWriter类与try-with-resources一起使用,当处理停止时,它将自动关闭资源:

File file = new File("Stock.txt");
try (FileWriter fileWriter = new FileWriter(file, true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) {
bufferedWriter.write(data + "n");
} catch (FileNotFoundException e) {
System.out.println("Unable to open file, file not found.");
} catch (IOException e) {
System.out.println("Unable to write to file." + file.getName());
}

请参阅:https://stackabuse.com/reading-and-writing-files-in-java/获取一些关于阅读和编写文件的非常有用的信息!

请参阅:https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html获取有关尝试使用资源的信息。

最新更新