一。春季: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.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/aop/aop/spring-aop-3.1.xsd http://wwwww.springframework.orgworkworkworkwork.org/schema/schema/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://wwwwwwww.dirtiretwebreting.org/schema/schema/schema/spring-dwr http:// http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd' ref =“觀察者”/> <! - > </bean> <! - > <bean id =“ observer”> <constructor-arg index =“ 0” value =“ d:// uploaddir”/> <! - > <constructor-arg-arg intructor-arg index =“ 1” ref =“ ref filt” ref filt filt of falter> construct =“ construct”/> <! <! - > - > </bean> <! - > - > <bean id =“聽眾”/> <! - > <bean id =“ filter”> <! - 指定文件擴展名,只有指定的擴展名文件會被處理。 ,只有指定的擴展名文件會被處理。
二。春季:SpringContextLoaderListener.Class
導入javax.servlet.servletcontextevent; import org.springframework.web.context.context.contextloaderlistener; public Class class springContContextLoaderListListEner擴展context context context contextloaderlisterlistener {@override public void public void voctapentInitialialized(servletcontextevent event) filemonitor掃描儀= getscanner(); //啟動目錄掃描器Scanner.start(); } @Override public void contextDestroyed(ServletContextevent event){filemonitor scanner = getscanner(); //關閉目錄掃描器Scanner.stop(); super.contextdestroyed(event); } / ** *獲取目錄掃描器 * @return * / private filemonitor getscanner(){返回getCurrentWebapplicationContext()。 getBean(filemonitor.class); }}}三。 Web: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> contextsconfiglocation </param-name> <param-name> <param-value> classpath:application:appplicat <Lucerner-Class> com.web.springcontextloaderlistener </listener-class> </listinger> </web-app>
四。 文件監測器
1。接口:filemonitor.class
導入org.apache.commons.io.io.monitor.filealterationobserver;/** *文件監測器角色 */公共接口filemonitor {/** * @param observer觀察器 */void addobserver(fileAlterterationObserationObserationObserrationObserver observer observer); / ** *刪除觀察器 * @param觀察者觀察器 */ void removeObserver(filealterationObserver觀察者); / ** *獲取註冊的所有觀察器 * @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.compace.apache.apache.apache.apce.lang3.concurrent.lang3.concurrent.bublic clublor.basicthreadfactory; Filemonitorimpl實施Filemonitor {私有最終FilealterationMonitor Monitor; / ** *監測器線程名稱 */私有靜態最終字符串monitor_thread_name =“文件監視器守護程序”; / ** * daemon標記 */私有靜態最終布爾守護程序= false; / ** * @ * @param間隔監測時間間隔 * @param observer文件觀察者 */ filemonitorimpl(int Interval,final fileStatrationObserver observer){this(Interval,sexterver,observer,new basicthreadfactory.builder()。 } / ** * 定義監測時間間隔、文件觀察器和線程工廠 * @param間隔監測時間間隔 * @param observer文件觀察器 * @param工廠線程工廠 * / filemonitorimpl(int Interval,final filealteration observer observer,final threadFactory Factory){this.Monitor = new fileAlterationMonitor(new fileAlterationMonitor)(Interval,new Filealteratiationobserverationobserverationobserververationobserververrationobserververver [] compererver [] {Instererver [] compererver}); monitor.setThreadFactory(工廠); } / ** *添加文件觀察器 * @param observer * / @override public void addobserver(fileAlterationObserver observer){morne.addobserver(observer); } / ** *刪除文件觀察器 * @param observer * / @override public void removeObserver(filealterationObserver observer){monitor.removeObserver(observer); } / ** *獲取註冊的所有觀察器 * @return * / @override public itoble <filealterationObserver> getObservers(){return return monito.getObservers(); } / ** *啟動監測器 * / @override public void start(){try {monitor.start(); } catch(異常E){e.printstacktrace(); }} / ** *停止監測器 * / @override public void stop(){try {monitor.stop(); } catch(異常E){e.printstacktrace(); }} / ** *獲取監測時間間隔 * / @override public long getInterval(){return monito.getInterval(); }}}五
1。接口:fileObserver.class
導入java.io.file; import org.apache.commons.io.io.monitor.fileAlterationListener;/** *文件觀察器角色 */公共接口file observer {/** * @param listerer */void AddListListListListEner(final filealterateListationListenerlistener listerer); / ** *刪除監聽器 * @param偵聽器 */ void removelistener(final filealterationListener偵聽器); / ** *獲取註冊的監聽器 * @return */ iToser <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.io.ioexception; import org.apache.commons.io.fileutils; import org.apache.commons.io.iocase; import org.apache.commons.io.io.io.io.monitor.monitor.monitor.filelealterterationlisterationlisterationListerationListener; import org..apache.camce.compace.compace.ioberation.filealiation *;當有文件創建、刪除、或變更動作時,則消息通知監聽器 */公共類FileObServerimpl擴展FileStrationObserver infimobserver {私有靜態最終靜態serialversionuid = -7239227289538993830l; / ** *文件過濾器 */私人最終文件縮寫過濾器; / ** *設置要監聽觀察的目錄,並設置文件過濾器和監聽器,用以觀察指定具有指定擴展名的文件,用以觀察指定具有指定擴展名的文件AddListener(偵聽器); this.filter = filter;文件目錄=新文件(dir); //如果目錄不存在If(!directory.exists()){try {fileutils.forcemkdir(directory); } catch(ioexception e){e.printstacktrace(); }} //如果存在的是文件else if(directory.exists()&& directory.isfile()){try {fileutils.forceDelete(directory); fileutils.forcemkdir(目錄); } catch(ioexception e){e.printstacktrace(); }}} / ** *添加監聽器 * / @override public void addlistener(final filealterationListener偵聽器){super.addlistener(listerer); } / ** *移除監聽器 * / @override public void removelistener(final filealterationListener偵聽器){super.removelistener(偵聽器); } / ** *獲取觀察者對象的所有監聽器 * / @override public Iterable <fielealterationListener> getListeners(){return super.getListeners(); } / ** *初始化文件觀察者 * / @override public void initialize()拋出異常{super.initialize(); } / ** *銷毀文件觀察者 * / @override public void destroy()拋出異常{super.destroy(); } / ** *獲取所觀察的目錄 * / @override public File getDirectory(){return super.getDirectory(); } / ** *獲取文件過濾器 * @return * / public filefilter getFilter(){return filter; }}}六。 文件監聽器:filelistener.class
導入java.io.file;導入org.apache.commons.io.io.monitor.fileAlterationListenerAdaptor; import org.apache.commons.io.monitor.filealterationobserver observer;/** ** *文件監聽器 *文件監聽器/公共最終類Filelistener file filealterters fordelealterters fordelealterterlisterationListeneradaptor onFileCreate(File file) { // To do something } /** * 文件刪除(轉移)時執行的動作 */ @Override public void onFileDelete(File file) { // To do something } /** * 文件內容改變時執行的動作 */ @Override public void onFileChange(File file) { // To do something } /** * 開始執行監聽時執行的動作 */ @Override public void onStart(FileAlterationObserver觀察者){//做某事} / ** *停止監聽時執行的動作 * / @override public void onstop(filealteration observer observer){// to做某事}}}七。 文件過濾器
1。接口:filefilter.class
/** *文件過濾器角色,擴展自java.io.filefilter */public接口filefilter擴展Java.io.filefilter {/** *獲取定義的擴展名 * * * * * * * * @return */string */string [] getextensions();};};};}2。實現類:filefilterimpl.class
導入java.io.file; import org.apache.commons.io.filenameutils;/** *文件過濾器 */public class filefilterimpl longement filefilters filefilter {private string [] extensions; extensions; public filefilterimpl(String ... Extensions){this.extensions = Extensions; } / ** *是否接受該文件 * / @override public buolean accept(file pathName){return fileNameutils.isextension(pathName.getName(),extensions); } / ** *獲取定義的擴展名 * @return * / @override public string [] getextensions(){return extensions; }}}以上這篇java實現文件變化監控的方法(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。 ,也希望大家多多支持武林網。