watchservice文件监控类
watch service是一个监听文件夹内文件是否有增加的类,JDK1.7新增特性
首先定义watchkey是一个监听新增文件,如下使用:
WatchKey key = null;
watchservice
定义watch service类获取watch service;
path是所需要监听的文件夹路径:
WatchService watchService=FileSystems.getDefault().newWatchService();
Paths.get(path).register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
使用阻塞监听
用watchkey 可以阻塞运行(当有新文件增加到文件夹时才会继续向下运行)
key=watchService.take();
while(true){
try{
for(WatchEvent<?> event:key.pollEvents()) {
System.out.println(a);
System.out.println(event.context());
}
}
}
获取新增文件名
String fileNameNew="";
fileNameNew=event.context();
下面是全部代码
//定义固定文件夹
private static String path="E:\\test\\";
public static void main(String[] args) throws FileNotFoundException, IOException {
Integer bInteger=0;
WatchKey key = null;
WatchService watchService=FileSystems.getDefault().newWatchService();
Paths.get(path).register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
while(true) {
try {
key=watchService.take();
for(WatchEvent<?> event:key.pollEvents()) {
System.out.println(a);
System.out.println(event.context());
a++;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
bInteger++;
}
}
如果要完整项目可私聊。