Commons IO之FileAlterationListenerAdaptor,FileAlterationObserver文件監控工具類介紹

 

pom.xml

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.8.0</version>
</dependency>

 

MyFileListener.java

package com.imddysc.txttocvs.filemon;

import java.io.File;

import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyFileListener extends FileAlterationListenerAdaptor {

	private static final Logger logger = LoggerFactory.getLogger(MyFileListener.class);

	// 文件創建
	@Override
	public void onFileCreate(File file) {
		logger.info("[新建]:" + file.getAbsolutePath());
	}

    // 文件修改
	@Override
	public void onFileChange(File file) {
		logger.info("[修改]:" + file.getAbsolutePath());
	}

    // 文件刪除
	@Override
	public void onFileDelete(File file) {
		logger.info("[刪除]:" + file.getAbsolutePath());
	}

    // 目錄創建
	@Override
	public void onDirectoryCreate(File directory) {
		logger.info("[新建]:" + directory.getAbsolutePath());
	}

    // 目錄修改
	@Override
	public void onDirectoryChange(File directory) {
		logger.info("[修改]:" + directory.getAbsolutePath());
	}

    // 目錄刪除
	@Override
	public void onDirectoryDelete(File directory) {
		logger.info("[刪除]:" + directory.getAbsolutePath());
	}

	@Override
	public void onStart(FileAlterationObserver observer) {
		super.onStart(observer);
	}

	@Override
	public void onStop(FileAlterationObserver observer) {
		super.onStop(observer);
	}
}

 

main方法中

		String rootDir = "E:\\test\\monitor";
		// 創建一個文件觀察器用於處理文件的格式
		// FileAlterationObserver _observer = new FileAlterationObserver(rootDir,
		// FileFilterUtils.and(FileFilterUtils.fileFileFilter(),
		// FileFilterUtils.suffixFileFilter(".txt")), null);// 過濾文件格式
		FileAlterationObserver observer = new FileAlterationObserver(rootDir);
		observer.addListener(new MyFileListener()); // 設置文件變化監聽器
		FileAlterationMonitor monitor = new FileAlterationMonitor(1000, observer);// 創建文件變化監聽器,間隔5秒
		monitor.start();// 開始監控

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章