JAVA监控文件夹、文件内容变更(新增、修改、删除) 您所在的位置:网站首页 java文件内容删除 JAVA监控文件夹、文件内容变更(新增、修改、删除)

JAVA监控文件夹、文件内容变更(新增、修改、删除)

2023-11-18 23:57| 来源: 网络整理| 查看: 265

通过java后台实现监控特定路径下的文件夹、文件内容是否发生变动!

实时监控文件变化有很多种方式,本文主要讲的是通过commons.io.jar,感觉很好用,很容易!

上面直接上案例:

第一步:maven引入:

commons-io commons-io 2.4

第二步:开启监控

package cn.**.**.**.plugs.file; import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.commons.io.monitor.FileAlterationMonitor; import org.apache.commons.io.monitor.FileAlterationObserver; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.util.concurrent.TimeUnit; /** * @author Tastill * @version 2019/1/24 15:00 * @description FileMonitorTest */ @Component public class FileMonitor { /** * @description * @param * @return * @version 2.0, 2019/1/25 9:44 * @author Tastill */ @PostConstruct public void initFileMonitor() { // 监控目录 String rootDir = "D:\\Test"; // 轮询间隔 5 秒 Integer time = 10; long interval = TimeUnit.SECONDS.toMillis(time); // 创建一个文件观察器用于处理文件的格式, // FileFilterUtils.suffixFileFilter(".txt") FileAlterationObserver _observer = new FileAlterationObserver( rootDir, FileFilterUtils.and( FileFilterUtils.fileFileFilter()), //过滤文件格式 null); FileAlterationObserver observer = new FileAlterationObserver(rootDir); observer.addListener(new FileListener()); //设置文件变化监听器 //创建文件变化监听器 FileAlterationMonitor monitor = new FileAlterationMonitor(interval, observer); // 开始监控 try { monitor.start(); } catch (Exception e) { e.printStackTrace(); } } }

这里使用@PostConstruct注解,主要是为了项目启动时,执行一次该方法,省去了通过定时器来调起定时器!

第三步:继承FileAlterationListenerAdaptor.java类,重写文件变更时的实现业务逻辑处理

package cn.**.**.**.plugs.file; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor; import org.apache.commons.io.monitor.FileAlterationObserver; import org.springframework.beans.factory.annotation.Autowired; import java.io.File; import java.util.Properties; import org.apache.log4j.Logger; /** * @author Tastill * @version 2019/1/24 14:55 * @description FileListener */ public class FileListener extends FileAlterationListenerAdaptor { public static final Logger logger = Logger.getLogger(FileListener.class); @Autowired FileConfigLoader fileConfigLoader; /** * @description 启动监听 * @param * @return * @version 2.0, 2019/1/24 15:08 * @author Tastill */ @Override public void onStart(FileAlterationObserver observer) { // System.out.println("启动监听器:"); } @Override public void onDirectoryCreate(File directory) { logger.info("有新文件夹生成:"+directory.getName()); } @Override public void onDirectoryChange(File directory) { logger.info("有文件夹内容发生变化:"+directory.getName()); } @Override public void onDirectoryDelete(File directory) { logger.info("有文件夹被删除:"+directory.getName()); } /** * @description 文件创建 * @param * @return * @version 2.0, 2019/1/24 14:59 * @author Tastill */ @Override public void onFileCreate(File file){ logger.info("有新文件生成:"+file.getName()); } /** * @description 文件内容发生变化 * @param * @return * @version 2.0, 2019/1/24 15:05 * @author Tastill */ @Override public void onFileChange(File file){ logger.info("有文件被修改:"+file.getName()); } /** * @description 文件被删除 * @param * @return * @version 2.0, 2019/1/24 16:13 * @author Tastill */ @Override public void onFileDelete(File file){ logger.info("有文件被删除:"+file.getName()); } /** * @description 监听停止 * @param * @return * @version 2.0, 2019/1/24 15:07 * @author Tastill */ @Override public void onStop(FileAlterationObserver observer){ // System.out.println("监听停止"); } }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有