importjava.nio.file.*;publicclassFileChangeListener{publicstaticvoidmain(String[]args){try{WatchServicewatchService=FileSystems.getDefault().newWatchService();// 创建一个新的观察服务Pathpath=Paths.get("要监控的文件夹路径");// 设置监控的文件夹路径path.register(watchService,StandardWatchEventKinds.ENTRY...
首先,我们需要创建一个监听器类,用于监听目录文件的变化。可以创建一个类,命名为FileChangeListener,并实现FileChangeListener接口。 importjava.nio.file.*;importjava.nio.file.WatchService;importjava.nio.file.WatchKey;importjava.nio.file.WatchEvent;importjava.io.IOException;// 创建监听器类publicclassFileChange...
*/publicstaticlongLAST_TIME=0L;publicstaticvoidmain(String[]args)throws IOException{String fileName="/Users/zzs/temp/1.txt";// 创建文件,仅为实例,实践中由其他程序触发文件的变更createFile(fileName);// 执行2次for(int i=0;i<2;i++){long timestamp=readLastModified(fileName);if(timestamp!=L...
FileAlterationListener 通过继承FileAlterationListenerAdaptor,覆盖相应事件方法。这里只重写了文件改变。还有其他事件可以查看FileAlterationListener接口看下。 publicclassFileAlterationReloadextendsFileAlterationListenerAdaptor { @OverridepublicvoidonFileChange(File file) { System.out.println("文件改变"); } } ...
public class FileRunner {public static void main(String[] args) throws Exception {FileMonitor fileMonitor = new FileMonitor(1000);fileMonitor.monitor("/Users/zzs/temp/", new FileListener());fileMonitor.start();}} 执行程序,会发现每隔1秒输入一次日志。当文件发生变更时,也会打印出对应的日志:...
在研究规则引擎时,如果规则以文件的形式存储,那么就需要监听指定的目录或文件来感知规则是否变化,进而进行加载。当然,在其他业务场景下,比如想实现配置...
目录背景方案一:定时任务 + File#lastModified方案二:WatchService方案三:Apache Commons-IO小结 背景 在研究规则引擎时,如果规则以文件的形式存储,那么就需要监听指定的目录或文件来感知规则是否变化,进而进行加载。当然,在其他业务场景下,比如想实现配置文件的动态加载、日志文件的监听、FTP文件变动监听等都会遇到类似的场...
*@since*/publicclassFileChangePublisherextendsObservable {/*** 这里利用Observe观察者模式进行相关的监听操作*//*** 添加文件更新监听器 * *@paramfileChangeListener*/publicvoidaddFileChangeListener(FileChangeListener fileChangeListener) {super.addObserver(fileChangeListener); ...
public class FileUpTest { private long lastTime; @Test public void testFileUpdate() { File file = new File("/tmp/alarmConfig"); // 首先文件的最近一次修改时间戳 lastTime = file.lastModified(); // 定时任务,每秒来判断一下文件是否发生变动,即判断lastModified是否改变 ...
public class FileWatchDemo { /** * 上次更新时间 */ public static long LAST_TIME = 0L; public static void main(String[] args) throws IOException { String fileName = "/Users/zzs/temp/1.txt"; // 创建文件,仅为实例,实践中由其他程序触发文件的变更 ...