一。春季: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实现文件变化监控的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。,也希望大家多多支持武林网。