一. Primavera 配置文件:
Application.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context" xmlns: dwr = "http://www.directwebremoting.org/schema/spring-dwr" xmlns: jaxrs = "http://cxf.apache.org/jrs" xsi: schemalocation = "httpach.wwwwshwww.prmchwshww.prthansch.brphws http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/Context http://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsdhttp://cxf.apache.org/jaxrs http://cxf.apache.or id = "monitor" class = "com.interfaces.file.monitor.filemonitorImpl"> <construtor-arg index = "0" value = "10000" /> <!-监测时间间隔 , 单位: 毫秒 毫秒-> <construtor-arg index = "1" ref = "observer" /> <!-文件观察器- id = "Observer" class = "com.interfaces.file.monitor.fileobserveriMpl"> <construtor-arg index = "0" value = "d: // uploaddir"/> <!-观察的目录-> <construtor-arg index = "1 ref =" "/> <! -> </i bean> <!-文件监听器-> <bean id = "ouvinte" class = "com.interfaces.file.monitor.FilElistener"/> <!-文件过滤器-> <bean id = "filter" class = "com.interfaces.file.monitor.filefilefilterImpl"> <!-如 , 只有指定的扩展名文件会被处理。不同的扩展名间以 " -> <construtor-arg index = "0" value = "xml"/> </sien> </sheans>
二. Primavera 上下文加载监听器:
SpringContextLoaderListener.class
importar javax.servlet.servletContextevent; importar org.springframework.web.context.contextLoaderListener; classe pública SpringContextLoaderListener estende contextListenerListener {@Overridepublic void (servletConteCerend; getScanner (); // 启动目录扫描器 scanner.start ();} @SubsteridePublic void contextDestroyed (Evento ServletContextevent) {scanner Filemonitor = getsCanner (); // 关闭目录扫描器 scanner.stop (); supere.ContextDestroyed (event);}/*** 获取目录扫描器 **lner.stop*; getCurrentWebApplicationContext (). getBean (filmonitor.class);}}三. Web 工程配置文件:
web.xml
<? xml versão = "1.0" coding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-innstance" xmlns: web = "http://xmlns.jcp.org/xmlns: web" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd http://xmlns.jcp.org/2_4.xsd http://xmlns.jcp.org/2_xmd http://xmlns.jcp.org/2_xmd http://xmlns.jcp.org/2_4 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. 接口 : filmonitor.class
importar org.apache.commons.io.monitor.FileAlterationObServer;/*** 文件监测器角色*/interface pública filemonitor {/*** 注册观察器*@param observador 观察器*/void addObServer (FileAlterationObServer observador); /*** 获取注册的所有观察器*@return 观察器集合*/iterable <FileAlterationObServer> getObServers (); /*** 启动监测器*/void start (); /*** 停止监测器*/void stop (); /*** 获取监测间隔时间*@return 间隔时间 (单位 : : 毫秒)*/long getInterval (); } 2. 实现类 : FilemonitorImpl.class
importar java.util.Concurrent.ThreadFactory; importar org.apache.commons.io.monitor.FilealterationMonitor; importar org.apache.commons.io.monitor.FileAlteration 设置文件观察器basicTerver; Importrg.apache.Commons.Lang3.Current.BasicThTactory; implementa o filemonitor {private Final FileAlterationMonitor Monitor;/*** 监测器线程名称*/private estático final String Monitor_thread_name = "Monitor de arquivo daemon";/*** 监测器线程 Daemon 标记*/private estático final boolean Daemon = Falsempl; {this (intervalo, observador, new BasicThreadFactory.builder (). namingpattern (monitor_thread_name) .daemon (daemon) .build ()); } /*** 定义监测时间间隔、文件观察器和线程工厂* intervalo @param 监测时间间隔* @param observador 文件观察器* @param fábrica 线程工厂* /filemonitorImpl (interval de intervalo, FILEALTERATIONOBSERVER FINALOBSERVER Observador, fábrica de threadsFactory final) {this.monitor = newIlterationMonitor (intervalo, fIlTeRationArtErver; }/*** 添加文件观察器*@Param Observer*/ @Substituirpublic void addObServer (FileAlterationObServer Observer) {Monitor.adDobserver (Observer);}/*** 删除文件观察器*@param observador*/ @ @substituir) void remove (filterationObser {Monitor.RemoveObServer (Observer);}/*** 获取注册的所有观察器*@return*/@Substituapublic Iterable <FileAlterationObServer> getObServers () {return monitor.getObServers ();}/*** 启动监测器*/@@@@@启动监测器); {E.PrintStackTrace ();}}/*** 停止监测器*/@Substituapublic void stop () {try {Monitor.stop ();} catch (exceção e) {e.printStackTrace ();}}/*** 获取监测时间间隔*/@@substituição long long getInterval () {Return.inter. }}五. 文件观察器
1. 接口 : FILEOBSERVER.CLASS
importar java.io.file; importar org.apache.commons.io.monitor.FileAlterationListener;/*** 文件观察器角色*/interface pública FileObserver {/*** 添加监听器*@param ouvinte*/void addListener (listener de FileAlTener Final); ouvinte);/*** 获取注册的监听器* @return*/iterable <FileAlterationListener> getListeners (); /*** 初始化观察器*@Throws Exception*/void Initialize () lança exceção; /*** 销毁观察器*@THOWS Exception*/void Destroy () lança exceção; /*** 获取观察的目录* @return*/arquivo getDirectory ();/*** 获取文件过滤器** @return*/public fileFilter getFilter ();} 2. 实现类 : FileObserverimpl.class
importar java.io.file; importar java.io.ioexception; importar org.apache.commons.io.fileutils; importar org.apache.commons.io.iocase; importação org.apache.commons.io.monitor.FileAlTerationListener; importação.apache.commons.oMons.oMons.monitor.FileAlterationListener;当有文件创建、删除、或变更动作时 , 则消息通知监听器*/classe pública FileObServerImpl estende FileAlTerationObServer implementa o FileObServer {private estático final seriialversionuid = -7239227289538993830l;/*** 文件过滤器*/filtro de arquivo final @***M @1m @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMM @IMIM @IMIM @IMIM @IMIM @IMM @IMIM @IMM @IMIM @*文件监听器*/public fileObServerImpl (String dir, filtro FilFilter final, ouvinte FileAlterationListener) {super (dir, filtro, (iocase) null); addListener (ouvinte); this.filter = filtro; diretório de arquivos = novo arquivo (dir); // 如果目录不存在 if (! diretório.exists ()) {try {fileutils.forcemkdir (diretório);} catch (ioexception e) {e.printstacktrace ();} // 如果存在的是文件 else if (diretório.exists () & {Fileutils.forcedelete (diretório); fileutils.forcemkdir (diretório);} catch (ioexception e) {e.printStacktrace ();}}}/*** 添加监听器*/@overridePublic void addListener (filealterationListner); Void RemovelMistener (ouvinte final FileAlterationListener) {super.RemovelMistener (ouvinte);}/*** 获取观察者对象的所有监听器*/@Substerpublic Iterable <FileAlterationListener> getListeners () {Return Super.getListeners ();}/*** 初始化文件观察者*/@@@@@@初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者@@初始化文件观察者 初始化文件观察者*/@@初始化文件观察者 初始化文件观察者*/@@初始化文件观察者 初始化文件观察者*/@@初始化文件观察者 初始化文件观察者*/@@@初始化文件观察者 初始化文件观察者 初始化文件观察者@@初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者 初始化文件观察者) {) {assouster. {super.initialize ();}/*** 销毁文件观察者*/@SubsteridePublic void Destroy () lança Exceção {super.Destroy ();}/*** 获取所观察的目录*/@@substerpublic arquivo getDirectory () {return super.getDirectory ();}/*** 获取文件过滤器*@return*/publicFilter六. 文件监听器
FileListener.class
importar java.io.file; importar org.apache.commons.io.monitor.FileAlterationListeneRadaptor; importar org.apache.commons.io.monitor.FileAlterationObServer;/*** 文件监听器*/public class FieListener ExtrendEndsOnCeListRaPAptor {*** *** *** 文件监听器 *** 文件监听器* {// Para fazer algo}/*** 文件删除 (转移) 时执行的动作*/@substituir o vazio do vazio onfiledElete (arquivo de arquivo) {// para fazer algo}/*** 文件内容改变时执行的动作*/@substituirpublic void em@filechange (arquivo) {// para fazer algo}/*** 开始执行监听时执行的动作*/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* Para fazer algo}/*** 停止监听时执行的动作*/@Substituapublic void ONSTOP (FileAlterationObServer Observer) {// para fazer algo}}七. 文件过滤器
1. 接口 : FileFilter.class
/*** 文件过滤器角色 , 扩展自 java.io.filefilter*/interface pública FileFilter estende java.io.filefilter {/*** 获取定义的扩展名** @return*/string [] getExtensions ();}2. 实现类:
FileFilterImpl.class
importar java.io.file; importar org.apache.commons.io.filenameutils;/*** 文件过滤器*/public class FileFilterImpl implementa FileFilter {private String [] Extensions; public FileFilterImpl (string ... Extensions)@this.extsions = extensões; Filenameutils.isextension (pathname.getName (), extensões); }/*** 获取定义的扩展名*@RETURN*/ @SubstridePublic String [] getExtensions () {Return Extensions;}}以上所述是小编给大家介绍的 Java 实现文件变化监控 , 希望对大家有所帮助 , 如果大家有任何疑问请给我留言 , 小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!