广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州如何监视Java目录中的更改?_北大青鸟IT学校

作者:邓华发布时间:2021-04-14分类:Java技术浏览:924


导读:如何监视Java目录中的更改?在处理完Java目录事件后,我们需要重置WatchKey对象,通过调用其reset()方法来再次接收事件通知。下面跟着惠州北大青鸟老师一起来学习如何监视Java目录中的更改。

如何监视Java目录中的更改?在处理完Java目录事件后,我们需要重置WatchKey对象,通过调用其reset()方法来再次接收事件通知。下面跟着惠州北大青鸟老师一起来学习如何监视Java目录中的更改。

我们需要重置WatchKey对象,通过调用其reset()方法来再次接收事件通知。

reset()方法将WatchKey置于就绪状态。如果WatchKey仍然有效,reset()方法返回true。 否则,它返回false。

如果WatchKey被取消或其监视服务关闭,它可能会失效。

// Reset   the   WatchKey
boolean isKeyValid = key.reset();if (!isKeyValid)  {
   System.out.println("No  longer  watching "  + dirToWatch);
}

WatchService是可自动关闭的。我们可以在try-with-resources中创建一个WatchService的对象块,当程序退出块时它将自动关闭。

实例

以下代码显示了如何实现监视服务以监视目录中的更改。

import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;import static java.nio.file.StandardWatchEventKinds.OVERFLOW;import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.WatchEvent;import java.nio.file.WatchEvent.Kind;import java.nio.file.WatchKey;import java.nio.file.WatchService;public class Main {  public static void main(String[] args) {    try (WatchService ws = FileSystems.getDefault().newWatchService()) {
     Path dirToWatch = Paths.get("C:\\myName");
     dirToWatch.register(ws, ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE);      while (true) {
       WatchKey key = ws.take();        for (WatchEvent<?> event : key.pollEvents()) {
         Kind<?> eventKind = event.kind();          if (eventKind == OVERFLOW) {
           System.out.println("Event  overflow occurred");            continue;
         }
         WatchEvent<Path> currEvent = (WatchEvent<Path>) event;
         Path dirEntry = currEvent.context();
         System.out.println(eventKind + "  occurred on  " + dirEntry);
       }        boolean isKeyValid = key.reset();        if (!isKeyValid) {
         System.out.println("No  longer  watching " + dirToWatch);          break;
       }
     }
   } catch (IOException | InterruptedException e) {
     e.printStackTrace();
   }
 }
}

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

Java11.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表