一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Java利用WatchService監(jiān)聽(tīng)文件變化示例

Java利用WatchService監(jiān)聽(tīng)文件變化示例

2021-01-19 10:31自行車上的程序員 Java教程

本篇文章主要介紹了Java利用WatchService監(jiān)聽(tīng)文件變化示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在實(shí)現(xiàn)配置中心的多種方案中,有基于JDK7+的WatchService方法,其在單機(jī)應(yīng)用中還是挺有實(shí)踐的意義的。

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.longge.mytest;
 
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.List;
 
/**
 * 測(cè)試JDK的WatchService監(jiān)聽(tīng)文件變化
 * @author yangzhilong
 *
 */
public class TestWatchService {
  public static void main(String[] args) throws IOException {
    // 需要監(jiān)聽(tīng)的文件目錄(只能監(jiān)聽(tīng)目錄)
    String path = "d:/test";
    
    WatchService watchService = FileSystems.getDefault().newWatchService();
    Path p = Paths.get(path);
    p.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY,
        StandardWatchEventKinds.ENTRY_DELETE,
        StandardWatchEventKinds.ENTRY_CREATE);
    
    Thread thread = new Thread(() -> {
      try {
        while(true){
          WatchKey watchKey = watchService.take();
          List<WatchEvent<?>> watchEvents = watchKey.pollEvents();
          for(WatchEvent<?> event : watchEvents){
            //TODO 根據(jù)事件類型采取不同的操作。。。。。。。
            System.out.println("["+path+"/"+event.context()+"]文件發(fā)生了["+event.kind()+"]事件"); 
          }
          watchKey.reset();
        }
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    });
    thread.setDaemon(false);
    thread.start();
    
    // 增加jvm關(guān)閉的鉤子來(lái)關(guān)閉監(jiān)聽(tīng)
    Runtime.getRuntime().addShutdownHook(new Thread(() -> {
      try {
        watchService.close();
      } catch (Exception e) {
      }
    }));
  }
}

運(yùn)行示例結(jié)果類似如下:

[d:/test/1.txt]文件發(fā)生了[ENTRY_MODIFY]事件
[d:/test/1.txt]文件發(fā)生了[ENTRY_DELETE]事件
[d:/test/新建文本文檔.txt]文件發(fā)生了[ENTRY_CREATE]事件
[d:/test/新建文本文檔.txt]文件發(fā)生了[ENTRY_DELETE]事件
[d:/test/222.txt]文件發(fā)生了[ENTRY_CREATE]事件

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

原文鏈接:http://www.cnblogs.com/yangzhilong/p/7487220.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品视频在线看 | 翁熄性放纵交换300章 | 9久爱午夜视频 | 国产高清小视频 | 国产趴着打光屁股sp抽打 | 亚洲一卡2卡三卡4卡5卡组 | 国产伦精品一区二区三区免费迷 | 我的家教老师 | 白丝h视频| 给我视频免费看 | 国产精品视频1区 | 男插女的下面免费视频夜色 | 精品欧美一区二区精品久久 | 黑人巨大初黑人解禁作品 | 午夜熟女插插XX免费视频 | 国产成人欧美 | 精品一区二区三区在线成人 | 国产成+人+综合+欧美 亚洲 | 精品一成人岛国片在线观看 | 欧美人与日本人xx在线视频 | 国产免费一区不卡在线 | 日韩欧美中文字幕出 | 免费看黄色片网站 | 国产亚洲精品美女2020久久 | 99视频在线看观免费 | 婷婷色在线播放 | 免费观看a毛片一区二区不卡 | 欧美日韩精品一区二区三区视频在线 | 免费十几分视频 | 91短视频在线播放 | 亚洲欧美日韩国产精品影院 | 女bbbbxxx孕妇 | 国产精品久久久久久影院 | 日本大学生xxxxx69泡妞 | 九九精品国产亚洲A片无码 九九99热久久999精品 | 亚洲精品第二页 | 俄罗斯美女破苞 | 俄罗斯处女 | 亚洲 欧美 国产 综合首页 | 狠狠色综合久久久久尤物 | 欧美les同性videos |