iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Java中怎么实时监控文件目录
  • 473
分享到

Java中怎么实时监控文件目录

2023-06-15 18:06:19 473人浏览 独家记忆
摘要

Java中怎么实时监控文件目录,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、代码实现1、简单案例这个代码很简单,只需要四步:public stat

Java中怎么实时监控文件目录,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、代码实现1、简单案例

这个代码很简单,只需要四步:

public static void main(String[] args) throws Exception {    //第一步:取得WatchService    WatchService watchService = FileSystems.getDefault().newWatchService();    //第二步:确定要监控的路径    Path path = Paths.get("G:\\");    //第三步:为本路径绑定WatchService,并确定监控的事件    path.reGISter(        watchService,        StandardWatchEventKinds.ENTRY_CREATE,        StandardWatchEventKinds.ENTRY_DELETE,        StandardWatchEventKinds.ENTRY_MODIFY);    WatchKey key;    //第四步:当有事件时,开始触发    while ((key = watchService.take()) != null) {        for (WatchEvent<?> event : key.pollEvents()) {           System.out.println("事件" + event.kind() + "发生了,文件是:" + event.context());        }        key.reset();    } }

这里我们监控G盘,然后我们在G盘新建文件,然后删除修改,就会在后台打印相关信息。

Java中怎么实时监控文件目录

现在就可以监控了,很简单。

2、代码分析

第一步和第二步,新建一个取得WatchService和取得要监控的路径,这个很容易理解。

第三步绑定,这里只需要注意两件重要的事情:首先,path将watchService作为第一个参数,然后是StandardWatchEventKinds的变量参数。一共有四种。

  • StandardWatchEventKinds.ENTRY_CREATE&mdash;当有新文件时触发。可能是创建了一个新文件。

  • StandardWatchEventKinds.ENTRY_MODIFY&mdash;当文件被修改时触发。所有的文件编辑都会触发这个事件。在一些平台上,甚至改变文件属性也会触发它。

  • StandardWatchEventKinds.ENTRY_DELETE&mdash;当文件被删除、移动或重命名时触发。

  • StandardWatchEventKinds.OVERFLOW&mdash;触发表示丢失或丢弃的事件。

第四步不断监控,当watchService里面不为空时,开始获取相应的事件,并poll弹出。最后还有一个reset  表示回退到相应的句柄,继续处理下一次事件。

3、源码分析

由于watchService是一个接口,所以分析起来也比较简单。里面一共包含了三个方法

//方法1:关闭watchService @Override void close() throws IOException; //方法2:弹出事件 WatchKey poll(); //方法3:带有参数的弹出 WatchKey poll(long timeout, TimeUnit unit)         throws InterruptedException; //方法4:获取事件。 WatchKey take() throws InterruptedException;

由于方法比较简单,所以我们可以直接看方法上的注释就可以了。

结论

WatchService接口是在java7的版本中引入的。主要是处理NIO的文件相关问题。但是WatchService其实是有很多缺点的。

WatchService是采用扫描式的,效率低。

WatchService代码写起来费劲。虽然上面看起来很简洁了,但是实际开发时麻烦。

WatchService不能监听到多级目录,事先父文件夹需要存在。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: Java中怎么实时监控文件目录

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

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

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

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

下载Word文档
猜你喜欢
  • Java中怎么实时监控文件目录
    Java中怎么实时监控文件目录,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、代码实现1、简单案例这个代码很简单,只需要四步:public stat...
    99+
    2023-06-15
  • java 使用线程监控文件目录变化的实现方法
    java 使用线程监控文件目录变化的实现方法  由于某种特殊的需求、弄了个使用线程监控文件目录变化的代码基本如下、其中减去一些复杂的操作、只留下基本代码:package com.file;import java.io.File;i...
    99+
    2023-05-31
    java 线程 监控
  • Linux中如何实时监控日志文件
    这期内容当中小编将会给大家带来有关Linux中如何实时监控日志文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. tail Command &ndash; Monitor Logs in Re...
    99+
    2023-06-16
  • 怎么在JAVA中利用WatchService监控文件
    今天就跟大家聊聊有关怎么在JAVA中利用WatchService监控文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用场景场景一:比如系统中的配置文件,一般都是系统启动的时候只加...
    99+
    2023-05-30
    watchservice java
  • Java实现文件监控器FileMonitor
      应用场景:  代码可以实现文件变化后的监听,如文件变化,自动重新加载文件内容,实现配置文件的热部署。  代码:  package com.yx.demo.filemonitor;  import java.io.File;  impor...
    99+
    2023-06-02
  • golang怎么实现文件监控
    在golang中,可以利用fsnotify来实现文件监控。fsnotify是go语言跨平台文件系统监控工具,实现了一个基于channel的、跨平台的实时监听接口;golang通过fsnotify可监控文件,并通过文件变化重启程序。本教程操作...
    99+
    2023-05-14
    go语言 Golang
  • java进度条怎么实现实时监控
    实现实时监控的进度条可以使用Java的Swing库来实现。下面是一个简单的示例代码:```javaimport javax.swin...
    99+
    2023-09-01
    java
  • Shell脚本如何监控目录内文件改动
    这篇文章将为大家详细讲解有关Shell脚本如何监控目录内文件改动,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码如下所示:#! /bin/bashwebroot="/home/w...
    99+
    2023-06-09
  • java怎么实时监控数据变化
    在Java中实现实时监控数据变化的方式主要有以下几种:1. 使用线程轮询:创建一个线程,在循环中定期地查询数据的变化情况。可以使用`...
    99+
    2023-08-17
    java
  • python基于watchdog库全自动化监控目录文件
    目录楔子使用方法创建一个文件创建一个目录重命名将文件1.txt移动到子目录test_child, 所以此时会伴随一个创建、一个删除以及一个修改修改文件1.txt小结楔子 有些时候我...
    99+
    2024-04-02
  • Linux下如何实时监控日志文件
    这篇文章给大家分享的是有关Linux下如何实时监控日志文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如何在Linux中实时查看日志文件的内容有很多实用工具可以帮助用户在文件修改或不断更新时跟踪或监控文件发生的...
    99+
    2023-06-27
  • java中怎么使用zipfile解压文件目录
    在Java中,可以使用ZipFile类来解压文件目录。以下是一个简单的示例代码来解压一个zip文件: import java.io....
    99+
    2024-04-08
    java
  • Python怎么实现定时发送监控邮件
    这期内容当中小编将会给大家带来有关Python怎么实现定时发送监控邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷...
    99+
    2023-06-22
  • 怎么在Java中使用WatchService监控文件内容变化
    这篇文章将为大家详细讲解有关怎么在Java中使用WatchService监控文件内容变化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现方案自己起一个单独线程,定时加载文件,实现较简单,但...
    99+
    2023-05-30
    java watchservice
  • Linux下怎么定时删除目录文件
    这篇文章主要介绍了Linux下怎么定时删除目录文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux下怎么定时删除目录文件文章都会有所收获,下面我们一起来看看吧。要实现定时删除某个目录下的所有文件需要用到...
    99+
    2023-06-27
  • java.nio.file.WatchService 实时监控文件变化的示例代码
    目录1.示例代码2.其实并没有实时在平时的开发过程中,会有很多场景需要实时监听文件的变化,如下:1、通过实时监控 mysql 的 binlog 日志实现数据同步2、修改配置文件后,希...
    99+
    2024-04-02
  • PHP中怎么实现文件和目录操作
    这篇文章给大家介绍PHP中怎么实现文件和目录操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、基本文件的操作文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性判断及文件时间等  ...
    99+
    2023-06-17
  • 怎么监控Linux文件系统事件
    这篇文章将为大家详细讲解有关怎么监控Linux文件系统事件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。历史简介在 inotify 之前有 dnotify。不幸的是,dnotify 有局限性,用户需要更好...
    99+
    2023-06-16
  • Linux监控文件事件怎么配置
    要监控Linux文件事件,您可以使用inotify工具。inotify是Linux内核提供的一个机制,用于监视文件系统中发生的事件。...
    99+
    2023-10-26
    Linux
  • Nagios怎么实现对日志文件的监控
    Nagios可以通过使用插件来实现对日志文件的监控。以下是一种实现方式: 首先,您需要安装一个插件,例如check_logfil...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作