判断.java文件中getConnection与cleanUp数量是否匹配
生活随笔
收集整理的這篇文章主要介紹了
判断.java文件中getConnection与cleanUp数量是否匹配
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
需求:查找未關(guān)閉的數(shù)據(jù)庫(kù)連接。
兩步走:
1.將給定目錄下的及子目錄下的 所有的給定后綴名的文件路徑存到集合中。
2.使用正則表達(dá)式對(duì)每個(gè)文件進(jìn)行匹配。
package com.fanc.main;import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.regex.Matcher; import java.util.regex.Pattern;public class Search4NotMatch {/*** * 深度遍歷該父目錄,將給定目錄下的及子目錄下的 所有的給定后綴名的文件路徑存到集合中。(進(jìn)行過(guò)濾)。** 遍歷集合對(duì)每個(gè)文件進(jìn)行匹配,需求是判斷每個(gè)文件中的getConnection和cleanUp數(shù)目是否相等**/public static void main(String[] args) {//指定目錄String filePath = "你需要指定的目錄";File dir = new File(filePath);ArrayList<File> path = new ArrayList<File>();writeToArr(dir, path);Iterator<File> it = path.iterator();while (it.hasNext()) {File file = (File) it.next();if (!deal(file)) {System.out.println(file);}}}public static void writeToArr(File dir,ArrayList<File> al) {File[] files = dir.listFiles();for (File f : files) {if (f.isDirectory()) {// 遞歸 遍歷父目錄及其子目錄writeToArr(f, al);} else {if (f.getName().endsWith(".java")) {al.add(f);}}}}// 判斷.java文件中g(shù)etConnection與cleanUp數(shù)量是否匹配public static boolean deal(File file) {String str = null;try {FileInputStream fis = new FileInputStream(file);byte[] content = new byte[fis.available()];fis.read(content);str = new String(content);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}int getConnectionNumber = 0;int cleanUpNumber = 0;Pattern p1 = Pattern.compile("getConnection");Pattern p2 = Pattern.compile("cleanUp");Matcher m1 = p1.matcher(str);Matcher m2 = p2.matcher(str);while (m1.find()) {getConnectionNumber++;}while (m2.find()) {cleanUpNumber++;}if (getConnectionNumber != cleanUpNumber) {return false;} else {return true;}} }
轉(zhuǎn)載于:https://www.cnblogs.com/badrice/p/4371935.html
總結(jié)
以上是生活随笔為你收集整理的判断.java文件中getConnection与cleanUp数量是否匹配的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《英雄联盟手游》明日开启无限火力模式,大
- 下一篇: TCL发布超薄零嵌冰箱T9首发价格349