一. الربيع : Application.xml
<؟ xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: dwr = "http://www.directwebremoting.org/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/spring-tx-3 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springfframework.org/schematext http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.directwebremoting.org/schema/spring-dwr http:/www http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd "> <!-文件监测器-> <bean id =" monitor "> <structor-arg index =" 0 "value =" 10000 "/> <!-监测时间间隔 监测时间间隔 : : : : : : : :- ref = "observer"/> <!-文件观察器-> </bean> <!-文件观察器-> <bean id = "observer"> <constructor-arg index = "0" value = "d: // eploaddir"/> <!-观察的目录-> <constructor-arg index = 1 "ref =" filter "/> <!-文件监听器-> </bean> <!-文件监听器-> <bean id = "المستمع"/> <!-文件过滤器-> <bean id = "filter"> <!-指定文件扩展名 , 只有指定的扩展名文件会被处理。 不同的扩展名间以 "،" 间隔 , , : : </bain>
二. الربيع : springContextLoaderListener.class
استيراد javax.servlet.servletcontextevent الماسح الضوئي filemonitor = getScanner () ؛ // 启动目录扫描器 scanner.start () ؛ } Override public void contextDestRoyed (حدث servletContexTevent) {filemonitor sannner = getScanner () ؛ // 关闭目录扫描器 scanner.stop () ؛ Super.ContextDestroyed (حدث) ؛ } / ** * 获取目录扫描器 * return * / private filemonitor getCanner () {return getCurrentWebapplicationContext (). getBean (filemonitor.class) ؛ }}三. الويب : web.xml
<؟ 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 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "الإصدار =" 2.4 " <Caneerer-Class> com.web.springContextLoaderListener </leader-class> </stanker> </web-app>
四. 文件监测器
1. : filemonitor.class
استيراد org.apache.commons.io.monitor.filealterationoBserver ؛/** * 文件监测器角色 */واجهة عامة filemonitor {/** * 注册观察器 * param observer 观察器 */void addobserver (FileAlterationObserver Observer) ؛ / *: / ** * 获取注册的所有观察器 * regurn 观察器集合 */ itervable <FileAlterationObserver> getObservers () ؛ / ** * 启动监测器 */ void start () ؛ / ** * 停止监测器 */ void stop () ؛ / ** * 获取监测间隔时间 * regurn 间隔时间 (单位 : :) */ long getInterval () ؛ }2. : filemonitorimpl.class
استيراد java.util.concurrent.threadfactory ؛ استيراد org.apache.commons.io.monitor.filealterationtoritor ؛ استيراد org.apache.commons.io.monitor.filealteration ؛ FileMonitorImpl ينفذ Filemonitor {Private FinalterationMonitor Monitor ؛ / ** * 监测器线程名称 */ private Static Final String switch_thread_name = "File Monitor Daemon" ؛ / ** * 监测器线程 Daemon 标记 */ Private Static Final Boolean Daemon = false ؛ / ** * 定义监测时间间隔、文件观察器 * param الفاصل الزمني 监测时间间隔 * param observer 文件观察者 */ filemonitorimpl (int الفاصل ، filealterationobserver observer) {هذا (الفاصل ، المراقب ، new basicthreadfactory.builder (). } / ** * 定义监测时间间隔、文件观察器和线程工厂 * param الفاصل الزمني 监测时间间隔 * param observer 文件观察器 * param factory 线程工厂 * / filemonitorimpl (int interal ، finalealterationobserver albosterver ، final threadfactory factory) {this.monitor = new filealterationmonitor (interval ، filealterationoBserver monitor.setThReadFactory (المصنع) ؛ } / ** * 添加文件观察器 * param observer * / Override public void addobserver (fileAlterationObserver Observer) {monitor.addobserver (observer) ؛ } / ** * 删除文件观察器 * param observer * / Override public void removeObserver (fileAlterationObserver Observer) {monitor.removeObserver (Observer) ؛ } / ** * 获取注册的所有观察器 * regurn * / Override public Iterable <IleAlterationObserver> getObservers () {return monitor.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 GetInterval () {return monitor.getInterval () ؛ }}五. 文件观察器
1. : : fileObserver.class
استيراد java.io.file ؛ import org.apache.commons.io.monitor.filealterationListener ؛/** * 文件观察器角色 */واجهة عامة fileObserver {/** * 添加监听器 * param مستمع */void addListener (FinalealterationListener Banterer) ؛ / ** * 删除监听器 * @param beasher */ void removelistener (FinalealterationListener beather) ؛ / ** * 获取注册的监听器 * regurn */ iterable <FileAlterationListener> getListeners () ؛ / ** * 初始化观察器 * athrows استثناء */ void تهيئة () رمي الاستثناء ؛ / ** * 销毁观察器 * therws استثناء */ void destroy () رمي الاستثناء ؛ / ** * 获取观察的目录 * return */ file getDirectory () ؛ / ** * 获取文件过滤器 * * @RETURN */ public filefilter getFilter () ؛}2. : fileObserverImpl.Class
استيراد java.io.file ؛ استيراد java.io.ioException ؛ استيراد org.apache.commons.io.fileutils ؛ استيراد org.apache.commons.io.iocase ؛ import org.apache.commons.io.monitor.filealterationlister ؛当有文件创建、删除、或变更动作时 , 则消息通知监听器 */فئة عامة fileObserverImpl يمتد FileAlterationObserver تنفيذ FileObserver {private Static Final Long SerialVersionuid = -723922728953893830L ؛ / ** * 文件过滤器 */ FILEFILTER FILEFILTER FILLER. / ** * 设置要监听观察的目录 , 并设置文件过滤器和监听器 , 用以观察指定具有指定扩展名的文件 用以观察指定具有指定扩展名的文件 * param dir 观察监听的目录 * param filter 文件过滤器 * param bearner 文件监听器 */ public fileObserverImpl (سلسلة dir ، filefilter filter ، filealterationlistener leader) {sup (dir ، filter ، (iocase) null) ؛ 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 (مستمع FinalEterationListener النهائي) {super.addlistener (المستمع) ؛ } / ** * 移除监听器 * / Override public void removelistener (FinalealterationListener Beasher) {super.removelistener (مستمع) ؛ } / ** * 获取观察者对象的所有监听器 * / Override Public Iterable <FileAlterationListener> getListeners () {return super.getListeners () ؛ } / ** * 初始化文件观察者 * / Override public void تهيئة () يلقي الاستثناء {super.initialize () ؛ } / ** * 销毁文件观察者 * / Override public void Dride () rems {super.destroy () ؛ } / ** * 获取所观察的目录 * / Override public file getDirectory () {return super.getDirectory () ؛ } / ** * 获取文件过滤器 * return * / public filefilter getFilter () {return filter ؛ }}六. : fileListener.class
استيراد java.io.file ؛ import org.apache.commons.io.monitor.filealterationListenerAderador ؛ import org.apache.commons.io.monitor.filealterationoBserver ؛/** * 文件监听器 */public class fileListener يمتد filealterationaldordor {/** // للقيام بشيء} / ** * 文件删除 文件删除 转移 转移 时执行的动作 时执行的动作 * / Override public void onfiledelete (ملف ملف) {// للقيام بشيء} / ** * 文件内容改变时执行的动作 * / / @ @void public onfilechang شيء ما} / ** * 停止监听时执行的动作 * / Override public void onStop (filealterationobserver observer) {// للقيام بشيء}}七. 文件过滤器
1. : : filefilter.class
/** * 文件过滤器角色 , 扩展自 java.io.filefilter */واجهة عامة fileFilter يمتد java.io.filefilter {/** * 获取定义的扩展名 * * regurn */string [] getextensions () ؛}2. : filefilterimpl.class
استيراد java.io.file ؛ import org.apache.commons.io.filenameUtils ؛/** * 文件过滤器 */public class filefilterimpl تنفذ filefilter {private string [] ؛ filefilterimpl (سلسلة ... ملحقات) {this.extensions = extensions ؛ } / ** * 是否接受该文件 * / Override Public Boolean قبول (مسار الملف) {return filenameutils.isextension (pathname.getName () ، extensions) ؛ } / ** * 获取定义的扩展名 * regurn * / Override public string [] getStensions () {return extensions ؛ }}以上这篇 Java 实现文件变化监控的方法 (推荐) 就是小编分享给大家的全部内容了 , 希望能给大家一个参考 , 也希望大家多多支持武林网。