要为项目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结果完全一样。用程序减轻了自己的工作量还是玩开心的!嘿嘿,知识的力量。