当前位置: 首页 > news >正文

SpringBoot项目中如何对指定目录下的文件变动进行监听

  1. 引入maven依赖
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.17.0</version>
</dependency>
  1. 编写demo程序
package com.demo.fileListener;import jakarta.annotation.PostConstruct;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;import java.io.File;@Component
public class DirObserverTest {Logger log = LoggerFactory.getLogger(this.getClass());@PostConstructpublic void init() throws Exception {// 观察指定目录:F:\dirObserverTest下的,以.json和.txt结尾的文件变动。FileAlterationObserver observer = new FileAlterationObserver("F:\\dirObserverTest", pathname -> pathname.getName().endsWith(".json") || pathname.getName().endsWith(".txt"));DirListener listener = new DirListener();observer.addListener(listener);FileAlterationMonitor monitor = new FileAlterationMonitor();monitor.addObserver(observer);monitor.start();log.info("目录监听已启动................");}}/*** 自定义监听器*/
class DirListener extends FileAlterationListenerAdaptor {Logger log = LoggerFactory.getLogger(this.getClass());@Overridepublic void onFileCreate(File file) {log.info("文件被创建:{}", file.getAbsoluteFile());super.onFileCreate(file);}@Overridepublic void onFileChange(File file) {log.info("文件变化:{}", file.getAbsoluteFile());super.onFileChange(file);}@Overridepublic void onFileDelete(File file) {log.info("文件被删除:{}", file.getAbsoluteFile());super.onFileDelete(file);}@Overridepublic void onDirectoryChange(File directory) {log.info("目录变化:{}", directory.getAbsoluteFile());super.onDirectoryChange(directory);}@Overridepublic void onDirectoryCreate(File directory) {log.info("目录新增:{}", directory.getAbsoluteFile());super.onDirectoryCreate(directory);}@Overridepublic void onDirectoryDelete(File directory) {log.info("目录删除:{}", directory.getAbsoluteFile());super.onDirectoryDelete(directory);}@Overridepublic void onStart(FileAlterationObserver observer) {// 周期(默认10s一次)性检测-开始log.info("onStart:{}", observer.getDirectory().getAbsoluteFile());super.onStart(observer);}@Overridepublic void onStop(FileAlterationObserver observer) {// 周期(默认10s一次)性检测-结束log.info("onStop:{}", observer.getDirectory().getAbsoluteFile());super.onStop(observer);}
}
  1. 测试

启动程序后,在对应目录下创建、修改、删除以.json、.txt为后缀的文件,都将看到控制台输出对应事件的日志。

http://www.gsyq.cn/news/43403.html

相关文章:

  • 同花顺一面
  • 2025 年 11 月财税合规服务厂家推荐排行榜,电商/跨境电商/出口退税/公司注销/股权设计/平台报送/亚马逊/Temu/1039/高新企业/审计报告全案解决方案
  • 2025 年 11 月机械设备去油剂厂家推荐排行榜,机械去油剂,工业设备去油剂,高效环保去油剂公司推荐
  • 2025 年 11 月优力胶厂家推荐排行榜,防静电优力胶,高硬度优力胶,定制优力胶公司推荐
  • 初见 - -Cherish
  • 2025年11月上海婚姻律师权威推荐:专业律师服务排行榜单
  • 20232301郑好 实验四 恶意代码分析实践
  • 用Python或C把搜狗细胞词库转成文本文件
  • AI元人文:理性主体性的理论建构与文明意义
  • 制造业的5种模式:OEM 、ODM、OBM 、JDM、CMT
  • springboot+easyui实现本学院学生去向登记表
  • 2025 年 11 月全自动加袋机厂家推荐排行榜,FFS/25公斤/吨袋/吨包全自动上袋机,肥料/铜精粉全自动吨袋上袋机公司精选
  • powerGrid靶机复盘WP
  • 2025 年 11 月电缆分支箱厂家推荐排行榜,35KV/10KV高压户外电缆分支箱,分接箱,对接箱,欧式光伏风电场用高原型带开关负荷开关隔离开关断路器
  • 2025 年 11 月财税合规服务厂家推荐排行榜,电商/跨境电商/出口退税/公司注销/股权设计/平台报送/海外公司/审计报告全案解决方案
  • 2025 年 11 月预埋件厂家推荐排行榜,幕墙预埋件,热镀锌预埋件,后置预埋件,槽式预埋件,冲压预埋件,焊接预埋件,套芯预埋件,钢结构预埋件,混凝土预埋件公司推荐
  • 2025 年 11 月喷头漏墨维修厂家推荐排行榜,理光喷头漏墨,京瓷喷头漏墨,精工喷头漏墨,喷绘机喷头漏墨维修与粘合修复技术教学
  • 2025 年 11 月铝材厂家推荐排行榜,1060/1070导电铝排,6061/6063合金铝排,6061/6063/6082/2A12/5A06/7075铝棒,5083/2A12铝板公司推荐
  • 11.7日学习笔记
  • java面试八股 redis篇
  • Python + nano-banana API 批量给图片添加文字
  • AI元人文:当一个系统说“我就是一个人”
  • pip install weditor安装出现报错
  • AI大模型应用开发技术架构和技术选型 - 努力-
  • 一个名为 LVGL for Visual Studio 的项目
  • MySQL 基础架构(一):SQL语句的执行之旅
  • 顺序表练习题
  • 关于一种计算递归次数题的思路
  • 前端框架深度解析:Vue 从入门到实战,掌握渐进式开发核心 - 实践
  • 练习上传