文件監控,實時監控文件加載(Commons-io)

    最近需求優化CPU時碰到的,記錄下,閒話少直接上代碼:java

1.啓動代碼web

public static void main(String[] args) {
		FileListener FileListener = new FileListener();

		boolean b = false;

			if(!b){
				try {
	                 /** 啓動文件監聽 */
					System.out.println("文件監聽開始............");
					String path =  "F:\\mulu";
					System.out.println("監聽文件路徑" + path);
					FileMonitor m = new FileMonitor(5000);  
					m.monitor(path,FileListener);  
					m.start();
					System.out.println("文件監聽啓動............");
				} catch (Exception e) {
					System.out.println("啓動文件監聽失敗.........." + e.getMessage());
					e.printStackTrace();
				}
			}
			b = true;



	}

二、文件動做展現代碼 spring

package org.mh.web.view.admin;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.mh.web.task.TaskReceiverRunnable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
//根據相關觸發的行爲,實現相關的業務
public class FileListener implements FileAlterationListener {
	
	/**日誌工廠*/
	protected final Logger logger = LoggerFactory.getLogger(this.getClass());
	
	@Override
	public void onStart(FileAlterationObserver observer) {
		logger.info("onStart.............");
		
	}

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

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

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

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

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

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

	@Override
	public void onStop(FileAlterationObserver observer) {
		logger.info("onStop............");		
	}

}

三、監控代碼 apache

package org.mh.web.view.admin;

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 {  
    
    FileAlterationMonitor monitor = null;  
    public FileMonitor(long interval) throws Exception {  
        monitor = new FileAlterationMonitor(interval);  
    }  
  
    public void monitor(String path, FileAlterationListener listener) {  
        FileAlterationObserver observer = new FileAlterationObserver(new File(path));  
        monitor.addObserver(observer);  
        observer.addListener(listener);  
    }  
    public void stop() throws Exception{  
        monitor.stop();  
    }  
    public void start() throws Exception {  
        monitor.start();  
    }  
    
}

須要相關架包,可網上自行搜索 ide

相關文章
相關標籤/搜索