Java监控文件变化

原创 2015年07月10日 11:57:34

NIO.2的Path类提供了如下的一个方法来监听文件系统的变化。

register(WatcherService watcher,WatchEvent.Kind<?>... events):用watcher监听该path代表的目录下文件变化。event参数指定要监听哪些类型的事件。

WatchService有三个方法来监听目录的文件变化事件。

WatchKey poll():获取下一个WatchKey,如果没有WatchKey发生就立即返回null;

WatcheKey poll(long timeout,TimeUnit unit):尝试等待timeout时间去获取下一个WatchKey;

WatchKey  take():获取下一个WatchKey,如果没有发生就一直等待;

如果程序需要一直监控,则应该选择使用take()方法,如果程序只需要监控指定时间,则使用poll方法。

  1. import java.nio.file.FileSystems;  
  2. import java.nio.file.Paths;  
  3. import java.nio.file.StandardWatchEventKinds;  
  4. import java.nio.file.WatchEvent;  
  5. import java.nio.file.WatchKey;  
  6. import java.nio.file.WatchService;  
  7. public class Test {  
  8.     public static void main(String[] args) throws Exception  
  9.     {  
  10.           
  11.         WatchService watchService=FileSystems.getDefault().newWatchService();  
  12.         Paths.get("C:/").register(watchService,   
  13.                 StandardWatchEventKinds.ENTRY_CREATE,  
  14.                 StandardWatchEventKinds.ENTRY_DELETE,  
  15.                 StandardWatchEventKinds.ENTRY_MODIFY);  
  16.         while(true)  
  17.         {  
  18.             WatchKey key=watchService.take();  
  19.             for(WatchEvent<?> event:key.pollEvents())  
  20.             {  
  21.                 System.out.println(event.context()+"发生了"+event.kind()+"事件");  
  22.             }  
  23.             if(!key.reset())  
  24.             {  
  25.                 break;  
  26.             }  
  27.         }  
  28.     }  
  29. }  
版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载。zuiniusn.com

相关文章推荐

java 7 /java.nio.file 文件监控!!!

public class Test { /** * @param args */ public static void main(String[] args) { // ...

[疯狂Java]NIO.2:WatchService、WatchKey(监控文件变化)

1. 旧版本监控文件变化的弊端:     1) 非常繁琐,必须自己手动开启一个后台线程每隔一段时间遍历一次目标节点并记录当前状态,然后和上一次遍历的状态对比,如果不相同就表示发生了变化,再采取相应的...

java读取系统Properties配置文件利用线程实时监控配置文件变化

java读取系统配置文件配置信息利用线程实时监控配置文件变化

JDK7之Java Watch Service API监控文件变化

示例代码 /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * * Redis...

Java监控文件目录的变化

在Java1.7以前的版本中,如果程序想要监控文件的变化,比较常规的做法是轮询要监控的文件目录,采用启动一条后台线程。这种做法性能较差尤其对于大批量的文件监控。 1.7版本后,java.nio.fil...
  • LGCSSX
  • LGCSSX
  • 2015-01-15 19:19
  • 1620

java监控路径下文件变化

之前用jdk7的WatchService API(java.nio.file包)来做目录下的子文件监控,后改为使用commons-io包。主要有下面几点不同:1. WatchService是采用扫描式...

java监控文件夹内文件变化并且进行文件同步bigfilesync

文件同步工具bigfilesync使用手册 设置环境变量     解压bigfilesync-1.0.zip到电脑的任意目录下,比如D:\bigfilesync-1.0,然后将D:\bigfile...

监控目录文件变化的ReadDirectoryChangesW 函数学习总结

客户端监控被监控目录(含所有子目录)下的变化,我们可以采用ReadDirectoryChangesW 函数 ,该函数实现对指定的目录进行监控,并且返回详细的文件变化信息。 函数原型: BOOL W...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)