您现在的位置是:主页 > news > 港口建设费申报网站/品牌软文营销案例
港口建设费申报网站/品牌软文营销案例
admin2025/5/23 16:10:40【news】
简介港口建设费申报网站,品牌软文营销案例,网站建设实验分析总结,骑行网站模板org.apache.commons.io包 使用Commons-io的 monitor 下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的。 可以监控文件夹的创建、删除和修改可以监控文件的创建、删除和修改采用的是观察者模式来实现的采用线程去定时去刷新检测文件的变化情况下面是…
港口建设费申报网站,品牌软文营销案例,网站建设实验分析总结,骑行网站模板org.apache.commons.io包 使用Commons-io的 monitor 下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的。
可以监控文件夹的创建、删除和修改可以监控文件的创建、删除和修改采用的是观察者模式来实现的采用线程去定时去刷新检测文件的变化情况下面是…
org.apache.commons.io包
使用Commons-io的 monitor 下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的。
- 可以监控文件夹的创建、删除和修改
- 可以监控文件的创建、删除和修改
- 采用的是观察者模式来实现的
- 采用线程去定时去刷新检测文件的变化情况
下面是在SpringBoot环境的应用:
1、引入commons-io包,需要2.0以上
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version>
</dependency>
2,编写继承FileAlterationListenerAdaptor的类ListenerAdaptor文件变化监听器
在Apache的Commons-IO中有关于文件的监控功能的代码. 文件监控的原理如下:
- 由文件监控类FileAlterationMonitor中的线程不停的扫描文件观察器FileAlterationObserver,
- 如果有文件的变化,则根据相关的文件比较器,判断文件时新增,还是删除,还是更改。(默认为1000毫秒执行一次扫描)
package com.test.service.MyService;import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.File;/*** @author selfimpr626*/
@Component
public class ListenerAdaptor extends FileAlterationListenerAdaptor {/*** 业务**/@Resource(name = "myServiceImpl")private MyServiceImpl myService;/*** 目录创建**/@Overridepublic void onDirectoryCreate(File directory) {System.out.println("创建新目录");}/*** 目录修改**/@Overridepublic void onDirectoryChange(File directory) {System.out.println("目录修改");}/*** 目录删除**/@Overridepublic void onDirectoryDelete(File directory) {System.out.println("目录删除");}/*** 文件创建(对于文件名的修改,会先触发文件新增方法,再触发文件删除方法)**/@Overridepublic void onFileCreate(File file) {myService.createFile(file);System.out.println("文件创建:" + file);}/*** 文件修改**/@Overridepublic void onFileChange(File file) {System.out.println("文件修改");}/*** 文件创建删除**/@Overridepublic void onFileDelete(File file) {System.out.println("删除文件:" + file);}/*** 扫描开始**/@Overridepublic void onStart(FileAlterationObserver observer) {}/*** 扫描结束**/@Overridepublic void onStop(FileAlterationObserver observer) {}
}
3,开启文件监听,点击进入此处的@PostConstruct注解解析
package com.test;import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.HiddenFileFilter;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.springframework.beans.factory.annotation.Autowired;import javax.annotation.PostConstruct;
import java.io.File;
import java.util.concurrent.TimeUnit;/*** @author selfimpr626*/
public class ListenerServer {@Autowiredprivate ListenerAdaptor listenerAdaptor;@PostConstructpublic void executeListener(){// 设置监控目录String monitorDir = "D:\\test\\file";// 设置扫描间隔long interval = TimeUnit.SECONDS.toMillis(5);// 创建过滤器// 匹配目录IOFileFilter directories = FileFilterUtils.and(FileFilterUtils.directoryFileFilter(), HiddenFileFilter.VISIBLE);// 匹配txt后缀文件IOFileFilter files = FileFilterUtils.and(FileFilterUtils.fileFileFilter(),FileFilterUtils.suffixFileFilter(".txt"));// 过滤符合:对应可视目录 和 后缀为".txt"的文件IOFileFilter filter = FileFilterUtils.or(directories, files);// 使用过滤器:装配过滤器,生成监听者FileAlterationObserver observer = new FileAlterationObserver(new File(monitorDir), filter);// 不使用过滤器的情况//FileAlterationObserver observer = new FileAlterationObserver(new File(monitorDir));// 向监听者添加监听器,并注入业务服务observer.addListener(listenerAdaptor);// 创建文件变化监听器FileAlterationMonitor fileAlterationMonitor = new FileAlterationMonitor(interval, observer);try { // 开启监听fileAlterationMonitor.start();} catch (Exception e) {e.printStackTrace();}}}
另外:还可以应用File Watch Service方式,启一个Listener监听器,去监测某个目录下的文件变动
https://blog.csdn.net/weixin_41888813/article/details/84859670