Java 文件监控,实时监控文件加载之Commons-io
2018-02-01 17:13
495 查看
今天看到一网友写的 Java 文件监控,实时监控文件加载 ,突然想到Commons-io中已有此功能的实现,先温习下 写个简单的Demo:
Java代码
package wy.util.filemonitor;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
* 文件监控测试
*
* 在Apache的Commons-IO中有关于文件的监控功能的代码. 文件监控的原理如下:
* 由文件监控类FileAlterationMonitor中的线程不停的扫描文件观察器FileAlterationObserver,
* 如果有文件的变化,则根据相关的文件比较器,判断文件时新增,还是删除,还是更改。(默认为1000毫秒执行一次扫描)
*
* @author wy
*
*/
public class FileMonitorTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// 监控目录
String rootDir = "F:\\Resume";
// 轮询间隔 5 秒
long interval = TimeUnit.SECONDS.toMillis(5);
// 创建一个文件观察器用于处理文件的格式
FileAlterationObserver _observer = new FileAlterationObserver(
rootDir,
FileFilterUtils.and(
FileFilterUtils.fileFileFilter(),
FileFilterUtils.suffixFileFilter(".txt")), //过滤文件格式
null);
FileAlterationObserver observer = new FileAlterationObserver(rootDir);
observer.addListener(new FileListener()); //设置文件变化监听器
//创建文件变化监听器
FileAlterationMonitor monitor = new FileAlterationMonitor(interval, observer);
// 开始监控
monitor.start();
}
}
import java.io.File; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor; import org.apache.commons.io.monitor.FileAlterationObserver; import org.apache.log4j.Logger; /** * 文件变化监听器 * * 在Apache的Commons-IO中有关于文件的监控功能的代码. 文件监控的原理如下: * 由文件监控类FileAlterationMonitor中的线程不停的扫描文件观察器FileAlterationObserver, * 如果有文件的变化,则根据相关的文件比较器,判断文件时新增,还是删除,还是更改。(默认为1000毫秒执行一次扫描) * * @author wy * */ public class FileListener extends FileAlterationListenerAdaptor { private Logger log = Logger.getLogger(FileListener.class); /** * 文件创建执行 */ @Override public void onFileCreate(File file) { System.out.println("[新建]:" + file.getAbsolutePath()); } /** * 文件创建修改 */ @Override public void onFileChange(File file) { System.out.println("[修改]:" + file.getAbsolutePath()); } /** * 文件删除 */ @Override public void onFileDelete(File file) { System.out.println("[删除]:" + file.getAbsolutePath()); } /** * 目录创建 */ @Override public void onDirectoryCreate(File directory) { System.out.println("[新建]:" + directory.getAbsolutePath()); } /** * 目录修改 */ @Override public void onDirectoryChange(File directory) { System.out.println("[修改]:" + directory.getAbsolutePath()); } /** * 目录删除 */ @Override public void onDirectoryDelete(File directory) { System.out.println("[删除]:" + directory.getAbsolutePath()); } @Override public void onStart(FileAlterationObserver observer) { // TODO Auto-generated method stub super.onStart(observer); System.out.println("0000000"); } @Override public void onStop(FileAlterationObserver observer) { // TODO Auto-generated method stub super.onStop(observer); System.out.println("111111111111"); } }
Java代码
package wy.util.filemonitor;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
/**
* 文件监控测试
*
* 在Apache的Commons-IO中有关于文件的监控功能的代码. 文件监控的原理如下:
* 由文件监控类FileAlterationMonitor中的线程不停的扫描文件观察器FileAlterationObserver,
* 如果有文件的变化,则根据相关的文件比较器,判断文件时新增,还是删除,还是更改。(默认为1000毫秒执行一次扫描)
*
* @author wy
*
*/
public class FileMonitorTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// 监控目录
String rootDir = "F:\\Resume";
// 轮询间隔 5 秒
long interval = TimeUnit.SECONDS.toMillis(5);
// 创建一个文件观察器用于处理文件的格式
FileAlterationObserver _observer = new FileAlterationObserver(
rootDir,
FileFilterUtils.and(
FileFilterUtils.fileFileFilter(),
FileFilterUtils.suffixFileFilter(".txt")), //过滤文件格式
null);
FileAlterationObserver observer = new FileAlterationObserver(rootDir);
observer.addListener(new FileListener()); //设置文件变化监听器
//创建文件变化监听器
FileAlterationMonitor monitor = new FileAlterationMonitor(interval, observer);
// 开始监控
monitor.start();
}
}
相关文章推荐
- Java 文件监控,实时监控文件加载之Commons-io
- Java 文件监控,实时监控文件加载之Commons-io
- Java文件实时监控Commons-io
- Java 文件监控,实时监控文件加载
- Java 文件监控,实时监控文件加载
- Java Commons-io文件操作类分享
- Java实时监控日志文件并输出(已进行修改,运行没问题)
- Java实时监控日志文件并输出
- Java实时监控日志文件并输出
- Java实时监控日志文件并输出
- spring boot +commons-io实现文件监控
- java读取系统Properties配置文件利用线程实时监控配置文件变化
- 使用apache common-io 定时监控文件下文件的变化,java文件扫描文件变化
- Java实时监控日志文件并输出的方法详解
- java读取系统Properties配置文件利用线程实时监控配置文件变化
- 工具类commons-io的Tailer用法,用来监控文件内容的变化情况
- JAVA实时监控目录下文件的变化
- java文件上传(使用commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar)
- Java实时监控日志文件并输出
- [异常] Java文件上传异常org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of mul