【发布时间】:2019-11-14 06:20:04
【问题描述】:
在 Java 8 中我可以使用什么来实时读取日志文件? 我阅读博客以了解 BufferedReader 是一个很好的阅读选择。 我在下面尝试过:
BufferedReader reader = new
BufferedReader(new
InputStreamReader(inputStream));
String line;
while(true) {
line = reader.readLine(); // blocks until next line
available
// do whatever You want with line
}
但是,无论文件是否更新,它都会一直打印 null。知道可能出了什么问题。
还有其他选择吗?
详情如下: 我正在尝试在 Java 8 或更高版本中创建一个实用程序,我需要在其中实时读取应用程序的日志文件(因为实时事务正在发生并打印在日志中)。
我可以像在 sme 服务器上一样访问日志文件,所以这不是问题。
所以一些细节如下 -> 我不想轮询日志文件的更改,我想保持桥打开以在“while true”循环中读取日志文件。所以理想情况下,如果没有新行被打印,我想阻止我的读者。
-> 我不想一直将文件的全部内容存储在内存中,因为我希望它具有内存效率。
-> 我的代码将作为一个单独的应用程序运行以读取另一个应用程序的日志文件。
-> 我的代码的唯一工作是读取日志,匹配模式,如果匹配则发送带有日志内容的消息。
如果任何细节不明确,请告诉我。
如有任何帮助,谢谢。
【问题讨论】:
-
你的问题是什么?
-
看来你想在java中拖尾文件,检查这个stackoverflow.com/questions/557844/…
标签: java performance io