【发布时间】:2016-04-28 10:45:39
【问题描述】:
我必须运行一个需要跟踪用户进行的事务的 Java 程序。我需要在 .txt 文件中记录这些事务。 我的代码一切正常,预计在程序关闭之前我看不到 .txt 文件 - 它不是创建的。
我们项目的目标是能够在程序运行时看到该文件实时更新。用户完成订单#1,该订单的交易记录到 .txt 文件中,可以立即看到更改——而程序仍在运行。用户完成订单 #2,该订单的交易被附加到 .txt 文件中 - 再次,同时程序正在运行。
我正在使用:
PrintWriter out;
out = (new PrintWriter(new FileWriter("log.txt", true)));
(writes lines to file)
out.flush();
out.close();
此代码位于每次用户完成订单时都会调用的方法中。订单完成后,log.txt 文件应立即反映更改,而不会退出程序。我花了几个小时来搜索如何做到这一点,但我没有成功。我对 Java 和编程也比较陌生;因此,非常感谢任何指导。
谢谢。
【问题讨论】:
-
这可能是文本编辑器的问题,而不是程序的问题。如果重新打开文件,内容是否更新?
-
感谢您的评论。什么都没有更新。当 log.txt 文件还不存在时——它是要创建的——在程序退出之前它不存在于目录中。我也在使用 IntelliJ 来运行程序。 log.txt 仅在程序完成时显示。
-
如果没有像样的minimal reproducible example,几乎不可能猜出您的程序可能存在什么错误。如果您仍在寻找解决方案,请考虑创建并发布此问题。
-
我发现了问题!感谢@AndrewWilliamson 提到这一点。我意识到是 Intellij 阻止了文件显示在文件目录中。我以另一种不同的方式运行它,我可以看到文件显示出来,并且“上次修改”随着每个新订单的提交时间而更新!非常感谢!
标签: java file io enterprise