有一个其他进程正在创建CSV文件,它会在事件发生时逐行追加。我对文件格式或其他进程没有控制权,但我知道它只会追加。
在Java程序中,我想监视此文件,并在添加一行时读取新行并根据内容做出反应。暂时忽略CSV解析问题。最好的方法是如何监视文件变化并逐行读取?
理想情况下,这将使用标准库类。该文件可能位于网络驱动器上,因此我希望能够提供一些强大的故障恢复功能。如果可能的话,我不想使用轮询 - 我更喜欢某种阻塞解决方案。
编辑-- 鉴于标准类无法提供阻止解决方案(谢谢答案),最稳健的轮询解决方案是什么?我不想每次都重新读取整个文件,因为文件可能会变得非常大。