【问题标题】:Can't write to the file second time after the program is closed and run again. Only save for the first time程序关闭并再次运行后无法第二次写入文件。只保存第一次
【发布时间】:2019-11-02 02:53:02
【问题描述】:

我正在处理我的任务,发现我想写入数据的文本文件,

一旦我关闭程序并再次运行,数据就不能被写入两次。这是代码

public static void writeFile() {

        try {

            PrintWriter writeFile = new PrintWriter(file);

            writeFile.print(buttonC1.getText()+"\t"+ 
                   stdname.getText()+"\t"+mtcnum.getText()+"\t"+cid.getText()+
                 "\t"+spvname.getText()+"\r\n123");

            writeFile.close();
        }catch(Exception e){
            e.printStackTrace();
    }
}

【问题讨论】:

  • 不能写两次是什么意思?您的代码在我的最后运行良好。我使用new File("file.txt") 创建文件。
  • 您的意思是希望能够再次运行程序并将it_append_数据添加到现有文件中?
  • Yaaa 将数据追加到现有文件 >
  • PrintWriter writeFile = new PrintFile(new FileOutputStream(file, true)); 应该这样做。 FileOutputStream(File file, boolean append)
  • @NgJingXuan 您需要在问题本身中更清楚地说明这一点。Edit 问题并在问题中包含您评论中的信息。我们需要该信息来确定问题的一部分问题文本。也用于未来的调试/问题:尝试将问题减少到最低限度。如果您可以将其中涉及的部分排除在等式之外,最好这样做。在这种情况下,可以在不涉及任何 gui 的情况下重现问题。删除该部分也会删除可能需要的一件事,但我很少看到问题:包括控件的文本

标签: java java-io


【解决方案1】:

“文件”是如何创建的?是否打印了堆栈跟踪?在 catch 块中,打印 e.getMessage()。

试试这个:

FileWriter writer = new FileWriter("test.txt");

try(PrintWriter printWriter = new PrintWriter(writer)){

    printWriter.write("Happy days are here again!");
}

完成上述工作后,一步一步添加您的内容。其中一个元素可能会导致问题,例如 NullPointerException。

【讨论】:

  • 如果您想要投票或选择正确答案,您应该实际回答问题。从 cmets 的说明中可以清楚地看出,问题实际上是->“如何附加到文件?”凯文在评论中提供了答案。将凯文的评论复制到您的答案中并解释清楚,我相信您会获得支持和声誉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多