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

Java 在现有文本文件中追加一行,但会添加额外的空行,java,append,text-files,bufferedreader,bufferedwriter,Java,Append,Text Files,Bufferedreader,Bufferedwriter,我试图在现有的文本文件中添加一行新行,但有时会在旧数据和新数据之间添加一个空行 所以我有一个包含数据的文件: mouse keyboard 当添加时,它会这样添加: mouse keyboard printer 但我不希望在新旧文本之间有一条空行。 这是我使用的代码: String filename= "Stock.txt" FileWriter fw = new FileWriter(filename,true); fw.write(System.lineSeparator() + da

我试图在现有的文本文件中添加一行新行,但有时会在旧数据和新数据之间添加一个空行

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

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 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());

    }
请参阅:有关读取和写入文件的一些非常有用的信息

请参阅:以获取有关试用资源的信息