Java WatchKey多个大文件

Java WatchKey多个大文件,java,nio,Java,Nio,我的代码如下: for (;;) { // retrieve key WatchKey key = watcher.take(); // process events for (WatchEvent<?> event: key.pollEvents()) { : } // reset the key boolean valid = key.reset(); } 既然jave7已经发布了一段时间,有没有办法确定是否已经使用nio库完成了一个大

我的代码如下:

for (;;) {
     // retrieve key
     WatchKey key = watcher.take();
 // process events
 for (WatchEvent<?> event: key.pollEvents()) {
     :
 }

 // reset the key
 boolean valid = key.reset();
}
既然jave7已经发布了一段时间,有没有办法确定是否已经使用nio库完成了一个大文件的创建,或者我正在为此编写代码?
答案就在这里。基本上,在windows系统上,您至少可以尝试打开FileInputStream,并循环直到成功。如果文件仍在写入,则将失败。

您可以生成一个线程来创建和使用文件。在重置密钥之前立即加入该线程。这样,您将确保在文件操作完成之前不会触发重置。我不确定我们是否在同一页上。我没有做任何文件创建,只是在看一个文件。我的问题是,在拍摄和重置之间,是否有任何文件轮询?我试图回答你的第二个问题。您可以使用我提到的方法来确定是否已完成任何操作,例如文件创建等。对,但我的代码不包含创建文件的过程。所以我不能把代码放到一个单独的线程中。如果这是我正在做的,那当然会有用,但我一开始就不会做文件监视程序。我还删除了我的第一个问题。测试表明这不是一个问题。