激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java 使用線程監控文件目錄變化的實現方法

java 使用線程監控文件目錄變化的實現方法

2021-01-21 13:27vtopqx Java教程

這篇文章主要介紹了java 使用線程監控文件目錄變化的實現方法的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下

java 使用線程監控文件目錄變化的實現方法

  由于某種特殊的需求、弄了個使用線程監控文件目錄變化的

代碼基本如下、其中減去一些復雜的操作、只留下基本代碼:

?
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
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>();
 
 
@Override
public 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());
}
}
 
 
/**
* 文件讀取
*
* @param filePath
*      路徑
* @param fileName
*      名稱
* @return 返回文件數組
*/
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();
}
}

執行后,效果圖如下:

java 使用線程監控文件目錄變化的實現方法

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/vtopqx/article/details/8264236

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 一级电影免费在线观看 | 91久久另类重口变态 | 请播放一级毛片 | 精品无吗乱吗av国产爱色 | 精品国产呦系列在线看 | 泰剧19禁啪啪无遮挡大尺度 | 精品一区二区在线播放 | 久久亚洲美女视频 | japanese hot milf free av | 成人黄色免费网站 | 成人在线视频黄色 | 国产精品久久久久久久久粉嫩 | 国产精品久久久久久久不卡 | 欧美爱爱视频网站 | 成人短视频在线观看免费 | 13一14毛片免费看 | 国产乱色精品成人免费视频 | 久久精品re | 一级黄色影片在线观看 | 久久一区国产 | 国产视频软件在线 | 亚洲精品成人久久久 | 黄色免费入口 | 91精品国产乱码久久久久 | 精品国产成人 | www.91sao| 免费在线观看国产精品 | 国产小视频在线 | 精品一区二区三区在线播放 | 欧美zoofilia杂交videos | 亚洲精品7777xxxx青睐 | 蜜桃网站免费 | 色吧久久| 91精品播放 | 精品一区二区三区中文字幕老牛 | 国产精品久久久久影院老司 | 久久久成人一区二区免费影院 | 国产一区二区三区在线观看视频 | 91福利社在线 | 欧美一级一区二区三区 | 久色乳综合思思在线视频 |