有没有任何方法可以在到达文件末尾时阻止读取util在java中有新的数据写入文件



我有两个java进程,进程A将数据写入文件,进程B从文件中读取数据。有时进程A没有运行,进程B需要从文件中读取现有数据,所以我不能使用套接字代替文件。

问题是,当B到达文件末尾时,读取功能立即返回,如果我在没有sleep()的情况下重试,即使没有新数据,CPU使用率也是100%。如果我尝试使用sleep(),响应时间和性能都不好。

当到达文件末尾时,是否有任何方法可以阻止读取,直到有新的数据写入文件,就像我在使用套接字一样?

尝试使用java.nio包的WatchService API。在这种情况下,您可以为目录中的任何修改创建观察程序。根据不同的修改会有不同的事件,您可以触发读取。

最新更新