Java 文件系统监控(WatchService)
Posted HiPari
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 文件系统监控(WatchService)相关的知识,希望对你有一定的参考价值。
文件系统监控这种场景应用非常广,比如spring boot里面的devtool,它就是监控文件系统,当文件一改变(增、删、改),它就会重新加载。
直接上代码
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
public class TestWatchService {
public static void main(String[] args) {
String s = "E:\\abc\\abc";
try {
WatchService ws = FileSystems.getDefault().newWatchService();
Path path = Paths.get(s);
path.register(ws, StandardWatchEventKinds.ENTRY_CREATE,StandardWatchEventKinds.ENTRY_DELETE,StandardWatchEventKinds.ENTRY_MODIFY);
while(true) {
WatchKey key = ws.take();
key.pollEvents().forEach(we -> {
System.out.println(we.context()+" --> "+we.kind());
});
boolean valid = key.reset();
if(!valid) {
break;
}
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
以上是关于Java 文件系统监控(WatchService)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Java WatchService 监视文件夹中的文件夹
JDK 之 NIO 2 WatchServiceWatchKey(监控文件变化)