common-io总结
功能汇总
文件监听实现原理
观察者模式:将要监听的目录和感兴趣的事件进行注册,启动专门的线程定时轮询,检查是否有感兴趣事件发生,当有感兴趣事件发生时调用相应观察者的回调函数即可。
文件监听代码示例
import java.io.File;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
* 类描述:监听文件变化示例
**/
public class FileMonitorTest { public static void main(String[] args) throws Exception { FileAlterationMonitor fileMonitor = new FileAlterationMonitor(1000); //设置文件过滤条件 IOFileFilter fileFilter = FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.nameFileFilter("mvn.txt")); FileAlterationObserver obs = new FileAlterationObserver(new File("D:/zk"), fileFilter); obs.addListener(new FileAlterationListenerAdaptor(){ @Override public void onFileCreate(File file) { System.out.println("onFileCreate" + file.getName()); } @Override public void onFileChange(File file) { System.out.println("onFileChange" + file.getName()); } @Override public void onFileDelete(File file) { System.out.println("onFileDelete" + file.getName()); } }); fileMonitor.addObserver(obs); fileMonitor.start(); } }