Java-监听文件系统增删改
JNotify库支持Windows,Linux和MacOS,允许我们监视一个文件夹,当这个文件夹下的文件被增删改时,发起回调通知。
	
 
public void addWatcher(String hangqingFolder, String hangqingFile) throws Exception {
        // watch mask, specify events you care about,
        // or JNotify.FILE_ANY for all events.
        int mask = // JNotify.FILE_CREATED |
                    // JNotify.FILE_DELETED |
                JNotify.FILE_MODIFIED; // 我们只需要注册修改事件
        // JNotify.FILE_RENAMED;
        // watch subtree?
        boolean watchSubtree = false;
        // add actual watch
        watchId = JNotify.addWatch(hangqingFolder, mask, watchSubtree, new JNotifyListener() {
            public void fileRenamed(int wd, String rootPath, String oldName, String newName) {
                // do nothing.
            }
            public void fileModified(int wd, String rootPath, String name) {
                if (!hangqingFile.equalsIgnoreCase(name)) //如果是修改的其他文件,则忽略
                    return;
                
                readHangqingFile(hangqingFolder + File.separator + hangqingFile);
            }
            public void fileDeleted(int wd, String rootPath, String name) {
                // do nothing
            }
            public void fileCreated(int wd, String rootPath, String name) {
                // do nothing
            }
        });
    }
	
	
 
以上代码:
1,我们只要监视文件修改,因此只要设置mask = JNotify.FILE_MODIFIED
2,不需要递归地监视子目录,设置watchSubtree = false
3,由于监视的是文件夹,而不是文件,在fileModified方法中,我们要判断修改的是不是我们关心的文件(即行情文件),如果不是,则忽略。如果是,就调用readHangqingFile开始读取。
JNotify是基于操作系统API实现的,即使用JNI实现的,因此除了jar文件,还包含.dll文件和.so文件。
	
	
 
摘自:http://www.cnblogs.com/Binhua-Liu/p/5609396.html
标签: 文件监听
		« GIT-命令行解决冲突
				|
				 Mac-锁屏-win+L»
	
		    
		日历
个人资料
 
		diaba 寻求合作请留言或联系mail: services@jiucaiyuan.net
链接
最新文章
存档
- 2025年4月(17)
- 2025年3月(25)
- 2025年2月(20)
- 2025年1月(2)
- 2024年10月(1)
- 2024年8月(2)
- 2024年6月(4)
- 2024年5月(1)
- 2023年7月(1)
- 2022年10月(1)
- 2022年8月(1)
- 2022年6月(11)
- 2022年5月(6)
- 2022年4月(33)
- 2022年3月(26)
- 2021年3月(1)
- 2020年9月(2)
- 2018年8月(1)
- 2018年3月(1)
- 2017年3月(3)
- 2017年2月(6)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(1)
- 2016年9月(3)
- 2016年8月(4)
- 2016年7月(3)
- 2016年6月(4)
- 2016年5月(7)
- 2016年4月(9)
- 2016年3月(4)
- 2016年2月(5)
- 2016年1月(17)
- 2015年12月(15)
- 2015年11月(11)
- 2015年10月(6)
- 2015年9月(11)
- 2015年8月(8)
分类
热门文章
- SpringMVC:Null ModelAndView returned to DispatcherServlet with name 'applicationContext': assuming HandlerAdapter completed request handling
- Mac-删除卸载GlobalProtect
- java.lang.SecurityException: JCE cannot authenticate the provider BC
- MyBatis-Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}
- Idea之支持lombok编译
标签
最新评论
- logisqykyk	
 Javassist分析、编辑和创建jav...
- xxedgtb	
 Redis—常见参数配置 - 韭菜园 ...
- wdgpjxydo	
 SpringMVC:Null Model...
- rllzzwocp	
 Mysql存储引擎MyISAM和Inno...
- dpkgmbfjh	
 SpringMVC:Null Model...
- tzklbzpj	
 SpringMVC:Null Model...
- bqwrhszmo	
 MyBatis-Improper inl...
- 乐谱吧	
 good非常好
- diaba	
 @diaba:应该说是“时间的度量依据”...
- diaba	
 如果速度增加接近光速、等于光速、甚至大于...
最新微语
- 在每件事情上花费的东西,就是生命的一部分,而我们花费的这些东西要求立即得到回报,或者在一个长时间以后得到回报。2025-01-23 15:46 
- 诺曼·文森特说:“并不是你认为自己是什么样的人,你就是什么样的人。但是你的思想是什么样,你就是什么样的人。”2025-01-23 15:44 
- 从今天起,做一个幸福的人。喂马,砍柴,(思想)周游世界2022-03-21 23:31 
- 2022.03.02 23:37:592022-03-02 23:38 
- 几近崩溃后,找到解决方法,总是那么豁然开朗!所以遇到问题要坚持!2018-07-18 10:49 

发表评论: