iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java 使用线程监控文件目录变化的实现方法
  • 164
分享到

java 使用线程监控文件目录变化的实现方法

java线程监控 2023-05-31 00:05:58 164人浏览 泡泡鱼
摘要

java 使用线程监控文件目录变化的实现方法  由于某种特殊的需求、弄了个使用线程监控文件目录变化的代码基本如下、其中减去一些复杂的操作、只留下基本代码:package com.file;import java.io.File;i

java 使用线程监控文件目录变化的实现方法

  由于某种特殊的需求、弄了个使用线程监控文件目录变化的

代码基本如下、其中减去一些复杂的操作、只留下基本代码:

package com.file;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;public class FilesMonitor implements Runnable {// 文件夹路径private String filePath = "D:\\t\\user\\local\\test\\";// 存放已读文件<即:缓存目录>private static Map<String, File> map = new HashMap<String, File>();@Overridepublic void run() {while (true) {try {// 设置每隔3秒检测一次Thread.sleep(3000);FileMonitor();} catch (InterruptedException e) {e.printStackTrace();}}}// 文件监听public void FileMonitor() {File[] files = getFiles(filePath, null);if (files != null && files.length > 0) {// 如果缓存中文件与读取的个数不一样的时候String fName = "";if (files.length != map.size()) {if (map.size() == 0) {for (File file : files) {fName = file.getName();map.put(fName, file);System.out.println("新增了文件:" + fName);}} else {// 如果减少了文件if (map.size() > files.length) {List<String> removeName = new ArrayList<String>();Iterator<String> iter = map.keySet().iterator();int j = 0;while (iter.hasNext()) {String key = iter.next();if (key != null && key.length() > 0) {for (File file : files) {fName = file.getName();if (fName.equals(key)) {j = 1;break;}}if (j != 1) {removeName.add(key);}j = 0;}}// 判断是否有删除的文件if (removeName.size() > 0) {for (String item : removeName) {map.remove(item);System.out.println("减少了文件:" + item);}}} else {for (File file : files) {fName = file.getName();if (!map.containsKey(fName.trim())) {map.put(fName, file);System.out.println("新增了文件:" + fName);}}}}} else {map.clear();for (File file : files) {fName = file.getName();map.put(fName, file);}}System.out.println("此时缓存中文件个数:" + map.size());}}public File[] getFiles(String filePath, String fileName) {File[] files = null;if (fileName == null) {File doc = new File(filePath);if (doc.isDirectory()) {String[] fileNameArr = doc.list();if (fileNameArr.length > 0) {files = new File[fileNameArr.length];for (int i = 0; i < fileNameArr.length; i++) {fileName = fileNameArr[i];String fileAbsPath = filePath + fileName;File regInfoFile = new File(fileAbsPath);files[i] = regInfoFile;}}}} else {String path = filePath + fileName;File doc = new File(path);if (doc.isFile()) {files = new File[1];files[0] = doc;}}return files;}// 启动线程public void show() {FilesMonitor t = new FilesMonitor();Thread tread = new Thread(t);tread.setName("eshore");tread.start();}// Main测试public static void main(String[] args) {FilesMonitor t = new FilesMonitor();t.show();}}

--结束END--

本文标题: java 使用线程监控文件目录变化的实现方法

本文链接: https://www.lsjlt.com/news/222374.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java 使用线程监控文件目录变化的实现方法
    java 使用线程监控文件目录变化的实现方法  由于某种特殊的需求、弄了个使用线程监控文件目录变化的代码基本如下、其中减去一些复杂的操作、只留下基本代码:package com.file;import java.io.File;i...
    99+
    2023-05-31
    java 线程 监控
  • 如何使用Python实现实时监控数组文件变化?
    在日常的编程工作中,我们经常需要监控某些文件的变化,并且在文件发生变化时能够及时作出相应的处理。在本文中,我们将介绍如何使用Python实现实时监控数组文件变化,并且通过演示代码来帮助您更好地理解。 使用Python的watchdog模...
    99+
    2023-07-05
    实时 数组 文件
  • 怎么在Java中使用WatchService监控文件内容变化
    这篇文章将为大家详细讲解有关怎么在Java中使用WatchService监控文件内容变化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现方案自己起一个单独线程,定时加载文件,实现较简单,但...
    99+
    2023-05-30
    java watchservice
  • Java实现监听文件变化的三种方案详解
    目录背景方案一:定时任务 + File#lastModified方案二:WatchService方案三:Apache Commons-IO小结背景 在研究规则引擎时,如果规则以文件的...
    99+
    2024-04-02
  • 如何编写一个监控LINUX目录和文件变化的Shell脚本
    本篇内容主要讲解“如何编写一个监控LINUX目录和文件变化的Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写一个监控LINUX目录和文件变化的Shell脚本”吧!脚本1:将需...
    99+
    2023-06-09
  • 怎么使用Shell脚本实现监测文件变化
    这篇文章主要讲解了“怎么使用Shell脚本实现监测文件变化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Shell脚本实现监测文件变化”吧!代码完整的shell脚本如下,可以直接使用...
    99+
    2023-07-02
  • Java利用线程工厂监控线程池的实现示例
    ThreadFactory 线程池中的线程从哪里来呢?就是ThreadFoctory public interface ThreadFactory { Thread ne...
    99+
    2024-04-02
  • 使用Java实现远程文件下载到本地目录
    使用Java实现远程文件下载到本地目录 文章目录 使用Java实现远程文件下载到本地目录前言一、正文介绍二、测试介绍总结 前言 今天开发时遇见了一个下载附件的需求,他的附件是存在一个网盘里查询时只是给我返回了一个https的路...
    99+
    2023-08-17
    java
  • Java基于servlet监听器实现在线人数监控功能的方法
    本文实例讲述了Java基于servlet监听器实现在线人数监控功能的方法。分享给大家供大家参考,具体如下:1、分析:做一个网站在线人数统计,可以通过ServletContextListener监听,当Web应用上下文启动时,在Servlet...
    99+
    2023-05-30
  • Java项目中实现守护线程的方法
    Java项目中实现守护线程的方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线...
    99+
    2023-05-31
    java 守护线程 ava
  • shell 提取文件名和目录名的方法实现
    目录一、使用变量操作符 ${}1、${var##*/}2、${var#*.} 3、${var%} 该方式是从左开始最大化匹配到字符"/",然后截掉左边内容(包括字符"/"...
    99+
    2023-02-16
    shell提取文件名 shell提取目录名
  • shell提取文件名和目录名的方法实现
    目录一、使用变量操作符 ${}1、${var##*/}2、${var#*.} 3、${var%} 该方式是从左开始最大化匹配到字符"/",然后截掉左边内...
    99+
    2023-02-16
    shell 提取文件名 shell 提取目录名
  • 使用 Loki 实现 Kubernetes 容器日志监控的方法
    目录一、基本介绍1.Loki 架构2.Loki 工作原理二、使用 Loki 实现容器日志监控1.安装 Loki2.安装 Promtail3.安装 Grafana4.验证一、基本介绍 ...
    99+
    2024-04-02
  • Java使用线程池实现socket编程的方法详解
    目录前言一、一个简单的C/S模型实现1.服务器:2.客户端:二、线程池使用方法1.新建一个线程池2.用Runnable接口实现线程3.创建线程对象并提交至线程池执行三、结合起来四、使...
    99+
    2024-04-02
  • 在Java项目中实现文件上传的方法
    在Java项目中实现文件上传的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.jspsmartupload这个组件用起来是挺方便的,不过就是只适合小文件上传,如果大文件上...
    99+
    2023-05-31
    java ava 目中
  • 在Java项目中实现多线程并发编程的方法
    在Java项目中实现多线程并发编程的方法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java 中的锁通常分为两种:通过关键字 synchronized 获取的...
    99+
    2023-05-31
    并发 java并发 多线程
  • 怎么使用Golang哈希算法实现配置文件的监控功能
    这篇文章主要介绍“怎么使用Golang哈希算法实现配置文件的监控功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Golang哈希算法实现配置文件的监控功能”文章能帮助大家解决问题。SHA(...
    99+
    2023-07-05
  • Java编程获取文件列表及子文件目录的方法(非递归)
    废话不谈,直接进入正题,理解见代码注释。// 非递归 public List<String> scanFiles(String path) { List<String>filePaths = new Arra...
    99+
    2023-05-30
    java 获取文件目录 ava
  • Typecho插件实现添加文章目录的方法详解
    目录添加文章标题锚点显示文章目录添加文章目录样式定位到文章定位到目录我的长博文不少,比较影响阅读体验,有必要添加一个文章目录功能。相比 Wordpress, Typecho 的插件就...
    99+
    2023-02-19
    Typecho添加文章目录 Typecho添加目录 Typecho目录
  • 在Java项目中实现多线程的方法有哪些
    在Java项目中实现多线程的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java中,有两种方式可以创建多线程:1 通过继承Thread类,重写Thread的run(...
    99+
    2023-05-31
    java 多线程 ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作