有個100萬行的錯誤日誌,且異常資訊種類不多,但是重複的比較多,要求統計具體方法在哪種異常資訊出現了多少次。因為某種異常中可能出現這個方法,也可能不出現,所以利用notepad++統計就不好使了,思來想去只有利用檔案讀寫操作,來解決這個問題了。
日誌檔案中每乙個異常開頭都是日期,格式為yyyy-mm-dd,所以決定利用日期來分割異常,**如下。
public class fileresolve
/*** 2023年4月30日
* @author: guowx * @description: 匹配日期
* @param text 當前行的內容
* @return true包含日期 ,false不包含日期
*/public static boolean iscontaindate(string text) -[0-9]-[0-9]";
pattern compile = pattern.compile(reg);
matcher matcher = compile.matcher(text);
boolean matches = matcher.find();
return matches; }
/*** 2023年4月30日
* @author: guowx * @description: 將處理後的資訊寫入檔案
* @param text 處理後的資訊
* @param path 寫入檔案的路徑
*/public static void resolve(stringbuffer text, string path)
filewriter filewriter = new filewriter(file.getabsolutepath());
bw = new bufferedwriter(filewriter);
bw.write(text.tostring());
system.out.println("********處理完畢**********");
bw.close();
} catch (ioexception e) }
/*** 2023年4月30日
* @author: guowx * @description: 對乙個異常的堆疊資訊進行統計
* @param text 乙個異常的堆疊資訊
*/public static void statistics(stringbuffer text) }
/*** 2023年4月30日
* @author: guowx * @description: 讀取檔案
* @param readpath 讀取檔案的路徑
* @param writepath 寫入檔案的路徑
*/public static void readfile(string readpath, string writepath)
}statistics(temp);
resolve(con,writepath);
isr.close();
} catch (ioexception e)
} else
}}
最後的效果很好,完美解決了問題。 java 檔案讀寫
一.獲得控制台使用者輸入的資訊 獲得控制台使用者輸入的資訊 return throws ioexception public string getinputmessage throws ioexception.五.轉移檔案目錄 轉移檔案目錄不等同於複製檔案,複製檔案是複製後兩個目錄都存在該檔案,而轉...
java 檔案讀寫
response.reset 非常重要 url u new url file filepath response.setcontenttype u.openconnection getcontenttype response.setheader content disposition inline ...
Java檔案讀寫
file file new file text.txt 只是file本身,不能進行讀寫 寫入 printwriter printwriter null try catch filenotfoundexception e finally 讀取 寫入 fileoutputstream fileoutpu...