一。春季:
application.xml
<? xml版本=“ 1.0”編碼=“ utf-8”? > <beans xmlns =“ http://www.springframework.org/schema/beans/beans” xmlns:xsi =“ XMLNS:tx =“ http://www.springframework.org/schema/tx” xmlns:aop =“ http://wwwwwww.springframework.org/schema/schema/aop/aop/aop” XMLNS:DWR =“ http://www.directwebremoting.org/schema/schema/spring-dwr” xmlns:jaxrs =“ http://cxf.apache.org/jaxrs” http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhtp://www.springframework.org/schema/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframewramework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframewramework.org/schema/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhtp://www.directwebremoting.org/schema/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/schemas/jaxrs/jaxrs.-jaxrs. jaxrs. jaxrs.xsrs.xsssd oeal id =“ monitor” class =“ com.interfaces.file.file.monitor.filemonitorimpl”> <structionor-arg index =“ 0” value =“ 10000” /> <! - 監測時間間隔,單位,> <-> <structionor-arg indexor-arg index =“ 1” 1“ ref =” ref =“ observer” /> <! - > <! id =“觀察者” class =“ com.interfaces.file.monitor.fileobserverimpl”> <structionor-arg index =“ 0” value =“ d:// uploaddir”/> <! - > <! - 觀察的目錄-> <structor-arg intructor-arg inderdor-arg index =“ 1” ref filt - > </bean> <! - >> <bean id =“ linter” class =“ com.interfaces.file.file.file.file.filelistener”/> <! - > <bean ID =“ filter” class =“ com.interfaces.file.file.monitor.filefilefilterimpl”> - > <constructor-arg index =“ 0” value =“ xml”/> </bean> </beans>
二。春季:
SpringContextLoaderListener.Class
import javax.servlet.ServletContextEvent;import org.springframework.web.context.ContextLoaderListener;public class SpringContextLoaderListener extends ContextLoaderListener{@Overridepublic void contextInitialized(ServletContextEvent event) {super.contextInitialized(event);FileMonitor scanner = getScanner(); //啟動目錄掃描器scanner.start();} @overridePublic void contextDestroyed(servletContextExtevent event){filemonitor scanner = getscanner(); // scanner.stop(); scanner.stop() getCurrentWebapplicationContext().getBean(filemonitor.class);}}}三。網絡::
web.xml
<? xml版本=“ 1.0” encoding =“ utf-8”? > <web-app xmlns:xsi =“ http://www.w.w.3.org/2001/xmlschema-chema-chema-chema-instance“ xmlns” xmlns:web =“ XSI:schemalocation =“ http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/xml/xml/ns/javaee/web-app_2_2_2_ssd http http http://xmlns.jcp.org/jcp.org/xml/nssns/jcml/jml/jcml/jcml/jcml/jcml/jcml/jcml/jcml/jcmjmj.ren.-jcmjm j.re.j.re.ns-j. n.n. n n n n n http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“ version="2.4"><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:application.xml</param-value></context-param><listener><listener-class>com.web.SpringContextLoaderListener</listener-class></listener></web-app>
四。 文件監測器
1。接口:filemonitor.class
導入org.apache.commons.io.io.monitor.filealteration observer;/***文件監測器角色*/公共接口filemonitor {/***註冊觀察器*@param observer觀察器*/void addobserver(fileAlterationObserationObserver observer observer observer observer);/* @param observer comberver emerver remaberaber( /***獲取註冊的所有觀察器*@return觀察器集合*/iToble <filealterationObserver> getObservers(); /***啟動監測器*/void start(); /***停止監測器*/void stop(); /***獲取監測間隔時間*@return 間隔時間(單位:毫秒:毫秒)*/long getInterval(); } 2。實現類:filemonitorimpl.class
導入java.util.concurrent.threadfactory; import org.apache.commons.io.monitor.filealterationMonitor; import org.apache.commons.io.monitor.filealter.filealterationobseration observer; import org.compace org.compace.apache.apache.apce.lang.lang3.concurrent.concurrent.basurent.basicthreadfactory; filemonitorimpl實施filemonitor {私人最終filestrationMonitor監視器;/***監測器線程名稱*/私人靜態最終字符串Monitor_thread_name =“文件監視器守護程序”;/***監測器線程守護程序標記/私人靜態最終boolean dinemon = false = false = false;/*** *** @param Interver in Interation in Interation in Interation in Interim in Interimper( observer){this(Interval,observer,new BasicThreadFactory.builder()。namingpattern(monitor_thread_name).daemon(daemon).build()); } /*** 定義監測時間間隔、文件觀察器和線程工廠* @param Interval監測時間間隔* @param observer文件觀察器* @param factory線程工廠* /filemonitorimpl(int Intertal,final filealteration observer observer,final threadFactory farters){this.monitor = new fileAltertrationMonitor(new fileArterationMonitor(Interval,new FileAlterTealobsertrationObserationobserrationobserrationobserrationobserdirationobration oprory.fortastrory){casterrory(casterrory); } /*** 添加文件觀察器* @param observer*/@Overridepublic void addObserver(FileAlterationObserver observer) {monitor.addObserver(observer);}/*** 刪除文件觀察器 * @param observer*/@Overridepublic void removeObserver(FileAlterationObserver observer) {Monitor.removeObServer(observer);}/***獲取註冊的所有觀察器*@return*/@overridePublic itoble <fielealterationObserver> getObServer> getObServer> getObservers(){return return monitor.getObServers() {e.printstacktrace();}}/***停止監測器*/@overridePublic void stop(){try {monitor.stop();} catch(Exception e){e.printstacktrace() }}}五。 文件觀察器
1。接口:fileObserver.class
導入java.io.file;導入org.apache.commons.io.monitor.fileAlterationListener;/***文件觀察器角色*/公共接口file observer {/***添加監聽器*@param listerer*/void addlistListEner(finalterterterationListerationListerationListerationListEnerlistener lister)聽眾);/***獲取註冊的監聽器* @return*/itoble <FilealterationListener> getListeners(); /***初始化觀察器*@throws異常*/void Initialize()拋出異常; /***銷毀觀察器*@throws異常*/void destroy()拋出異常; /***獲取觀察的目錄* @return*/file getDirectory();/***獲取文件過濾器** @return*/public filefilter getFilter();} 2。實現類:fileObserverimpl.class
導入java.io.file; import java.io.io.ioexception; import org.apache.commons.io.fileutils; import org.apache.commons.io.iocase; import org.apache.commons.io.io.io.monitor.monitor.monitor.monitor.filelealterterationListerationListerationListerationListener; import org.apache.camce.compace.commontation.monoriTation.fiLEAR* emorifer* yer* ytriatiation ****;當有文件創建、刪除、或變更動作時,則消息通知監聽器*/公共類FileObServerimpl擴展了FileSealtrationObserver {私有靜態靜態最終長序列uID = -723922727289538993830L;/***文件過濾器文件監聽器*/public fileobserverimpl(字符串dir,Final FileFilter filter,filealterationListener偵聽器){super(dir,filter,filter,(iocase)null); addListener(anderer); this.filter = filter; file directory = new file(dir); // if(!directory.exists()){try {fileutils.forcemkdir(directory);} catch(ioexception e){e.printstacktrace(e.printstacktrace() {FileUtils.forceDelete(directory);FileUtils.forceMkdir(directory);} catch (IOException e) {e.printStackTrace();}}}/*** 添加監聽器*/@Overridepublic void addListener(final FileAlterationListener listener) {super.addListener(listener);}/***移除監聽器*/@OverRidePublic void emovelistener(final fileSterationListener偵聽器){super.removelistener(lister);}/***獲取觀察者對象的所有監聽器/@@overridePublic itose <filealterationListerationListener>引發異常{super.initialize();}/***銷毀文件觀察者*/@overridePublic void dester()拋出異常{super.destroy();}/@overridePublic file getDirectory() }六。 文件監聽器:
filelistener.class
導入java.io.file;導入org.apache.commons.io.monitor.filealterationListenerAdaptor; import org.apache.commons.io.commons.io.monitor.filealterationobserver observer;/***文件監聽器*/***/***/*/ onfilecreate(文件文件){//做某事}/*** 文件刪除(轉移)時執行的動作*/@OverRidePublic void onfiledelete(file file){//做某事}/@overridepublicpublic void void onfileChange onfilechange(file file file file file) onstart(filealteration oberver observer){//做某事}/***停止監聽時執行的動作*/@OverRidePublic void onStop onStop(filealteration observer observer){//做某事}}}七。 文件過濾器
1。接口:filefilter.class
/***文件過濾器角色文件過濾器角色
2。實現類:
filefilterimpl.class
導入java.io.file; import org.apache.commons.io.filenameutils;/***文件過濾器*/public class class filefilterimpl實現filefilter {private string [] extensions; public filefilterimpl(string ... string ... Extensions) filenameutils.isextension(pathName.getName(),擴展); }/***獲取定義的擴展名*@return*/ @overridePublic string [] getextensions(){return extensions;}}}以上所述是小編給大家介紹的java實現文件變化監控,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持! ,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!