要为项目150余个代码点添加统一监控。监控点的key是按规律定义的,以chat3打头,alert结尾。我必须先把这150余个key从代码中搜索出来,然后在统一监控中按key逐个添加监控。如果用Eclipse自带的搜索功能搜索文本,可以,但是必须逐个去文件夹树里找,略显麻烦。
324/2,一共162个监控点,逐个点进去找到自己要的信息实在太麻烦!
为什么不写代码统计呢?!深搜文件树+正则表达式匹配文本就行了。
10分钟敲完代码!
public class Test {
public static int cnt = 0;
public static void main(String[] args){
File file = new File("F:\\IMChat3.0\\3.0");
Pattern pattern = Pattern.compile("chat3.+(?!chat3).+alert");
dfs(file,pattern);
System.out.println("一共" + cnt + "个匹配项");
}
public static void dfs(File file,Pattern p){//深搜文件夹树
File[] fs = file.listFiles();
for(File f : fs){
if(f.isDirectory()){
dfs(f,p);
}
else if(f.isFile() && f.getName().endsWith("java")){
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f),"UTF-8"));//工程用到的文件编码,不用编码读取文件,就是GBK编码,会乱码。
String line = null;
while( (line = br.readLine()) != null){
Matcher matcher = p.matcher(line);
if(matcher.find()){
System.out.println(matcher.group());
++ cnt;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
程序运行结果如下:
程序结果和Eclipse的Search结果完全一样。用程序减轻了自己的工作量还是玩开心的!嘿嘿,知识的力量。