亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java使用WatchService監(jiān)控文件夾示例

 更新時(shí)間:2017年02月16日 10:06:36   作者:DrJasonZhang  
本篇文章主要介紹了java使用WatchService監(jiān)控文件夾示例的資料,這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。

通過(guò)java7提供的WatchService API 實(shí)現(xiàn)對(duì)文件夾的監(jiān)控

package service;

import config.Config;
import java.io.IOException;
import java.nio.file.*;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class WatchDirService {
  private WatchService watchService;
  private boolean notDone = true;

  public WatchDirService(String dirPath){
    init(dirPath);
  }

  private void init(String dirPath) {
    Path path = Paths.get(dirPath);
    try {
      watchService = FileSystems.getDefault().newWatchService(); //創(chuàng)建watchService
      path.register(watchService, 
      StandardWatchEventKinds.ENTRY_CREATE,
      StandardWatchEventKinds.ENTRY_MODIFY,
      StandardWatchEventKinds.ENTRY_DELETE); //注冊(cè)需要監(jiān)控的事件,ENTRY_CREATE 文件創(chuàng)建,ENTRY_MODIFY 文件修改,ENTRY_MODIFY 文件刪除
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  public void start(){
    System.out.print("watch...");
    while (notDone){
      try {
        WatchKey watchKey = watchService.poll(Config.POLL_TIME_OUT, TimeUnit.SECONDS); //此處將處于等待狀態(tài),等待檢測(cè)到文件夾下得文件發(fā)生改變,返回WatchKey對(duì)象
        if(watchKey != null){
          List<WatchEvent<?>> events = watchKey.pollEvents(); //獲取所有得事件
          for (WatchEvent event : events){
            WatchEvent.Kind<?> kind = event.kind(); 
            if (kind == StandardWatchEventKinds.OVERFLOW){
              //當(dāng)前磁盤(pán)不可用
              continue;
            }
            WatchEvent<Path> ev = event;
            Path path = ev.context();
            if(kind == StandardWatchEventKinds.ENTRY_CREATE){
              System.out.println("create " + path.getFileName());
            }else if(kind == StandardWatchEventKinds.ENTRY_MODIFY){
              System.out.println("modify " + path.getFileName());
            }else if(kind == StandardWatchEventKinds.ENTRY_DELETE){
              System.out.println("delete " + path.getFileName());
            }
          }
          if(!watchKey.reset()){ 
            //已經(jīng)關(guān)閉了進(jìn)程
            System.out.println("exit watch server");
            break;
          }
        }
      } catch (InterruptedException e) {
        e.printStackTrace();
        return;
      }
    }
  }
}

就是這么簡(jiǎn)單就可以對(duì)一個(gè)文件夾進(jìn)行監(jiān)控了。

完整帶碼地址:WatchServerDemo_jb51.rar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java喚醒本地應(yīng)用的兩種方法詳解

    Java喚醒本地應(yīng)用的兩種方法詳解

    這篇文章主要為大家介紹了Java喚醒本地應(yīng)用的兩種方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • SpringBoot通過(guò)@MatrixVariable進(jìn)行傳參詳解

    SpringBoot通過(guò)@MatrixVariable進(jìn)行傳參詳解

    這篇文章主要介紹了SpringBoot使用@MatrixVariable傳參,文章圍繞@MatrixVariable展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06
  • 如何在java中使用Jython

    如何在java中使用Jython

    這篇文章主要介紹了如何在java中使用Jython,由于項(xiàng)目中需要用到Java調(diào)用Python的腳本,來(lái)實(shí)現(xiàn)一些功能,就對(duì)jython做了一些了解,通過(guò)jython可以實(shí)現(xiàn)java對(duì)python腳本的調(diào)用,需要的朋友可以參考一下
    2022-03-03
  • 淺談Maven包沖突的原理及解決方法

    淺談Maven包沖突的原理及解決方法

    這篇文章主要介紹了淺談Maven包沖突的原理及解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java 得到集合中所有子集

    Java 得到集合中所有子集

    本文主要介紹了Java 得到集合中所有子集的方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • 常用Maven庫(kù),鏡像庫(kù)及maven/gradle配置(小結(jié))

    常用Maven庫(kù),鏡像庫(kù)及maven/gradle配置(小結(jié))

    這篇文章主要介紹了常用Maven庫(kù),鏡像庫(kù)及maven/gradle配置(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java?String相加底層原理分析

    Java?String相加底層原理分析

    這篇文章主要介紹了Java?String相加底層原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • springcloud連接遠(yuǎn)程nacos失敗顯示localhost服務(wù)連接失敗的問(wèn)題解決

    springcloud連接遠(yuǎn)程nacos失敗顯示localhost服務(wù)連接失敗的問(wèn)題解決

    這篇文章主要介紹了springcloud連接遠(yuǎn)程nacos失敗顯示localhost服務(wù)連接失敗的問(wèn)題解決,文中有詳細(xì)的代碼示例供大家參考,對(duì)大家解決問(wèn)題有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • android顯示意圖激活另一個(gè)Activity的方法

    android顯示意圖激活另一個(gè)Activity的方法

    下面小編就為大家?guī)?lái)一篇android顯示意圖激活另一個(gè)Activity的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Java如何分析算法的時(shí)間和空間復(fù)雜度

    Java如何分析算法的時(shí)間和空間復(fù)雜度

    這篇文章主要介紹了Java如何分析算法的時(shí)間和空間復(fù)雜度,在計(jì)算機(jī)科學(xué)中,計(jì)算復(fù)雜性解釋了算法的性能。文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-06-06

最新評(píng)論