最近需求優化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