java用于监听文件的状态变化

「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

昨天的时候我们已经说了,如何遍历文件夹下的所有文件及附属子文件夹,今天我们再来看看一个文件夹下那么多文件,如果我们想知道这个文件夹下面的文件的变化动态该咋办呢,我通过pom来解决来引包 。

百度百度下我们会发现common-io包已经为我们提供了对应的方法我们可以创建一个监听类并继承FileAlterationListenerAdaptor,该类实现了FileAlterationListener 接口,FileAlterationListenerAdaptor里只有对应的方法,却没有内部逻辑,所以需要我们进行重写,首先写上我们监听的目录;

1
ini复制代码File file = new File("D:\\java\\测试文件夹");

在进行项目监听的时候我们可以创建过滤器,过滤器有两种 一个是目录的过滤,一个是文件的过滤,过滤可加可不加,我没有选择加,然后为目录创建一个FileAlterationObserver并注册监听器,你如果想加上监听器的过滤,可以在后面追加参数,百度一下就出来的,,其实就是在下面的构造方法后面追加参数IOFileFilter的对象,这样就可以过滤掉你不想监听的文件或文件夹;

1
ini复制代码FileAlterationObserver fileObserver = new FileAlterationObserver(file);

调用addListener添加文件监听器,

1
arduino复制代码fileObserver.addListener(new FileListenUtil());

构造一个具有指定间隔5秒下的观察者集的监视器。

1
ini复制代码FileAlterationMonitor fileMonitor = new FileAlterationMonitor(TimeUnit.SECONDS.toMillis(5), fileObserver);

然后开始监控,

1
ini复制代码fileMonitor.start();

此处记着,在重写的方法里加上标志,以便可以观察到文件变化监听在控制台的日志,监听器可以监听文件和文件夹的增加、删除、修改的状态我们执行一下看下结果;为了测试结果,我将监听的轮询时间调成了十秒一次;

最后将代码提交上去,需要可以看下,我的代码也有很多百度的

gitee.com/sixiaoluo/c…

谢谢思密达!!!

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%