java监听文件变化_JAVA 项目监听文件是否发生变化

1、Spring容器都初始化完成之后做操作

package com.luwen.dai;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.ApplicationListener;

import org.springframework.context.event.ContextRefreshedEvent;

public class ContextFileListener implements ApplicationListener {

@Autowired

private FileMonitor fileMonitor;

@Override

public void onApplicationEvent(ContextRefreshedEvent event) {

try {

fileMonitor.monitor();

fileMonitor.start();

} catch (Exception e) {

e.printStackTrace();

}

}

}

2、applicationContext.xml添加配置

3、添加文件监听 FileMonitor、FileListener 可看资料

commons-io-2.4

package com.luwen.dai;

import java.io.File;

import org.apache.commons.io.monitor.FileAlterationListener;

import org.apache.commons.io.monitor.FileAlterationMonitor;

import org.apache.commons.io.monitor.FileAlterationObserver;

public class FileMonitor {

private FileAlterationMonitor monitor = null;

private String filePath;

private FileAlterationListener alterationListener;

private long intervalTime = 10000L;

public FileMonitor(long interval) throws Exception {

monitor = new FileAlterationMonitor(interval);

}

public FileMonitor() throws Exception {

monitor = new FileAlterationMonitor(intervalTime);

}

public void monitor(String path, FileAlterationListener listener) {

FileAlterationObserver observer = new FileAlterationObserver(new File(path));

monitor.addObserver(observer);

observer.addListener(listener);

}

public void monitor() {

FileAlterationObserver observer = new FileAlterationObserver(new File(filePath));

monitor.addObserver(observer);

observer.addListener(alterationListener);

}

public void stop() throws Exception{

monitor.stop();

}

public void start() throws Exception {

monitor.start();

}

public String getFilePath() {

return filePath;

}

public void setFilePath(String filePath) {

this.filePath = filePath;

}

public FileAlterationListener getAlterationListener() {

return alterationListener;

}

public void setAlterationListener(FileAlterationListener alterationListener) {

this.alterationListener = alterationListener;

}

public long getIntervalTime() {

return intervalTime;

}

public void setIntervalTime(long intervalTime) {

this.intervalTime = intervalTime;

}

}

package com.luwen.dai;

import java.io.File;

import org.apache.commons.io.monitor.FileAlterationListener;

import org.apache.commons.io.monitor.FileAlterationObserver;

public class FileListener implements FileAlterationListener {

@Override

public void onStart(FileAlterationObserver observer) {

// TODO Auto-generated method stub

System.out.println("onStart()");

}

@Override

public void onDirectoryCreate(File directory) {

// TODO Auto-generated method stub

System.out.println("onDirectoryCreate()");

}

@Override

public void onDirectoryChange(File directory) {

// TODO Auto-generated method stub

System.out.println("onDirectoryChange()");

}

@Override

public void onDirectoryDelete(File directory) {

// TODO Auto-generated method stub

System.out.println("onDirectoryDelete()");

}

@Override

public void onFileCreate(File file) {

// TODO Auto-generated method stub

System.out.println("onFileCreate()");

}

@Override

public void onFileChange(File file) {

// TODO Auto-generated method stub

System.out.println("onFileChange()");

}

@Override

public void onFileDelete(File file) {

// TODO Auto-generated method stub

System.out.println("onFileDelete()");

}

@Override

public void onStop(FileAlterationObserver observer) {

// TODO Auto-generated method stub

System.out.println("onStop()");

}

}

4、在applicationContext.xml 配置相关Bean

至此完成启动项目,在指定文件夹下增加、修改、删除文件都会触发相关方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值