目前我们有一个日志文件,该文件中具有若干条日志信息每行一条,前面是固定长度的时间,后面是日志级别和日志内容,如:
20160801 09:40:24 INFO 程序启动中 20160801 09:40:25 INFO 程序启动成功 20160801 09:41:10 ERROR 程序出现错误,错误信息:未响应 20160801 09:43:24 INFO 程序重启中 20160801 09:45:01 ERROR 程序重启失败 20160801 09:46:25 INFO 程序启动成功 20160801 09:47:10 ERROR 程序出现错误,错误信息:配置文件缺失 20160801 09:48:24 INFO 程序重启中 20160801 09:49:01 ERROR 程序重启失败 20160801 09:50:25 INFO 程序启动成功 20160801 09:51:10 ERROR 程序出现错误,错误信息:响应超时 20160801 09:53:24 INFO 程序重启中 20160801 09:55:01 ERROR 程序重启失败
将是ERROR级别错误的全部放到Error.txt文本文件中,并去到ERROR
代码如下:
import java.io.*;
public class Classify {
public static void main(String[] args) {
BufferedReader in = null;
BufferedWriter out = null;
String ss="ERROR";
try {
in = new BufferedReader(new FileReader("src//log.txt"));
out = new BufferedWriter((new FileWriter("src//Error.txt",true)));
//逐行读取、存入字符串,实现文件复制
String s;
while ((s = in.readLine()) != null) {
if(s.contains(ss)) {
s=s.replace("ERROR","");
System.out.println(s);
out.write(s);
//写入一个分行符,否则内容在一行显示
out.newLine();
}
}
in.close();
out.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}