【问题标题】:Appending a line to an existing text file but adds an extra blank line将一行附加到现有文本文件但添加一个额外的空白行
【发布时间】:2020-05-08 14:29:46
【问题描述】:

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

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

mouse
keyboard

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

mouse
keyboard

printer

但我不想在新旧文本之间出现空行。 这是我使用的代码:

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

【问题讨论】:

    标签: java append text-files bufferedreader bufferedwriter


    【解决方案1】:

    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 - 使用带有 try-with-resource 的 File、FileWriter 和 BufferWriter 类,这将在处理停止时自动关闭资源:

        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

    【讨论】:

      猜你喜欢
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 2015-03-14
      相关资源
      最近更新 更多