1

可能重复:
如何使用 Java 从正在写入的文件中读取?

我有一个程序(陷阱接收器),它将一个字符串附加到文件的末尾。这个程序基本上记录了它所做的一切。

我希望我的程序读取该日志文件。我这样做会遇到什么问题,最有效的方法是什么。在另一个进程更新文件时读取文件。

4

1 回答 1

1

假设这个记录器和大多数记录器一样,不只是附加任何类型的字符串,而是整行。

如果你什么都没有,你可以简单地使用 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     
    }
}

当然,如果您的应用程序有其他任务要完成,您必须在单独的线程中执行此操作。

如果您想避免拉动,在非常罕见的日志记录的情况下,您可能会使用监视服务,但我从未在一个简单的文件上尝试过它,我不确定它是否总是可靠的。

于 2012-10-03T08:12:45.203 回答