向现有文本文件追加一行但添加一个额外的空行

Appending a line to an existing text file but adds an extra blank line

我正在尝试向现有文本文件中添加一个新行,这行得通,但有时会在旧数据和新数据之间添加一个空行

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

mouse
keyboard

并且添加的时候是这样添加的:

mouse
keyboard

printer

但我不想在旧文本和新文本之间有一个空行。 这是我使用的代码:

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

Buffer reader 和 Buffer writer 是首选 类 在读取和写入文件时使用。

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

示例 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-resource 结合使用,这将在处理停止时自动关闭资源:

    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/ 了解有关读写文件的一些非常有用的信息!

有关 try-with-resource 的信息,请参阅:https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html