可能重复:
如何使用 Java 从正在写入的文件中读取?
我有一个程序(陷阱接收器),它将一个字符串附加到文件的末尾。这个程序基本上记录了它所做的一切。
我希望我的程序读取该日志文件。我这样做会遇到什么问题,最有效的方法是什么。在另一个进程更新文件时读取文件。
可能重复:
如何使用 Java 从正在写入的文件中读取?
我有一个程序(陷阱接收器),它将一个字符串附加到文件的末尾。这个程序基本上记录了它所做的一切。
我希望我的程序读取该日志文件。我这样做会遇到什么问题,最有效的方法是什么。在另一个进程更新文件时读取文件。
假设这个记录器和大多数记录器一样,不只是附加任何类型的字符串,而是整行。
如果你什么都没有,你可以简单地使用 bufferedReader 并等待:
BufferedReader br = new BufferedReader(new FileReader("path"));
String line;
while (true) {
line = br.readLine();
if (line != null) {
// do something
} else {
Thread.sleep(DELAY); // DELAY could be 100 (ms) for example
}
}
当然,如果您的应用程序有其他任务要完成,您必须在单独的线程中执行此操作。
如果您想避免拉动,在非常罕见的日志记录的情况下,您可能会使用监视服务,但我从未在一个简单的文件上尝试过它,我不确定它是否总是可靠的。