我必须运行一个需要跟踪用户进行的交易的 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 文件应立即反射(reflect)更改,而无需退出程序。我花了几个小时来寻找如何做到这一点,但我没有成功。我对 Java 和编程也比较陌生;因此,非常感谢任何指导。
谢谢。
最佳答案
您是否看过 java 的标准日志记录框架? ( slf4j ) 它是一个几乎无处不在的 API,并且有许多非常好的实现,例如 logback , 或 log4j 等等。让那些担心写入文件的人。编程到一个接口(interface)(即 slf4j 接口(interface))并复制粘贴(如果您不想做任何花哨的事情)一些 xml 配置,用于来自 Internet 的记录器实现。
您不必打开文件,或刷新并关闭它们。你的代码将是:
log.info("something happened");
阅读此主题,因为实际上没有严肃的 Java 项目没有日志记录元素。花一些时间学习一次这个框架,因为你可以永远使用它。
关于Java:在程序运行时更新 .txt 文件并能够看到更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34936457/