Java:在程序运行时更新 .txt 文件并能够看到更改

标签 java file io enterprise

我必须运行一个需要跟踪用户进行的交易的 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/

相关文章:

performance - 如何在 Haskell 中高效写入大文件

Java - 内部类打开父类的后门

java - 限制添加除第一级子节点之外的 JTree 节点

python - 打开文件夹中的所有文档并将它们放入列表中

python - 打印换行符的最 Pythonic 方式

python - 从文件中读取以不同方式编写的列表

java - 如何解决 bootcamp-cordapp 中的 NotSerializedException。测试合约时

java - 同一笔交易能否保证数据可见性

java - 如何在Java中使用运行时对象打开多个文件?

c++ - 在 C++ 中包含文件?