不知大家是否曾遇到这样的需求,要从存储大量特定数据的文本文件中获取自己需要的特定内容或数据,文件中数据量十分庞大,如果采用手动的方式去筛选,工作量就会很大。此时,对于我们程序员来说就可以通过编写一个简单的程序进行实现。
首先简单描述下笔者的需求。
接口回传的错误信息日志内容如上图所示,暂命名为error.log,其中错误信息有多种,需找到重复信访件编号不存在的所有信访件编号,以上就是需要实现的具体需求。
现在直接上代码
public static void main(String[] args) throws IOException {
//创建读取文本字符流
InputStreamReader isr = new InputStreamReader(new FileInputStream("F:\\error.log"), "UTF-8");
BufferedReader in = new BufferedReader(isr);
//行对象
String line = "";
//保存需要的数据
String str="";
//循环遍历每行内容,截取需要的数据
while((line = in.readLine())!=null)
{
if(line.indexOf("信访件的重复信访件编号")>-1) {
str+=line.substring(line.indexOf("信访件编号[")+6,line.indexOf("]的信访件的重复信访件编号"))+"\n";
}
}
if(!"".equals(str)) {
System.out.println(str);
}
}
代码其实实现很简单,相信大家都懂的,关键在于一定要进行编码转换,否则读取utf-8格式的文件中文会显示乱码。
下面展示下实现效果:
本人第一篇博客,欢迎大家一起交流,如有不到之处,望各位大佬海涵,多多指教。