Java IO 流读取文件

来源:互联网 发布:网络迷情女人视频 编辑:程序博客网 时间:2024/05/17 06:33
 今天做了一个小工具,就是用java io流去读取一个文件,从那个文件中检索相应的内容,然后在把内容抓取出来。做这个的初衷是,从Linux系统上自动down下来日志文件,然后把日志文件里的有用内容抓取过来,通过Email发送给指定的人,这是其中的一个小环节,项目还要扩充。以后还会定时任务处理,自动发邮件功能。
字节流版本
package com.ibm.logstool.io;

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.LineNumberInputStream;
public class ReadLogs {

public String getErrMessage(String filePath,String errMessage){
FileInputStream fs=null;
StringBuffer sb=new StringBuffer();
DataInputStream ds = null;
LineNumberInputStream li=null;
try {
File file=new File(filePath);
fs = new FileInputStream(file);
li= new LineNumberInputStream(fs);
ds= new DataInputStream(li);
String line;
int i=1;
while((line=ds.readLine())!=null){
//System.out.println("Did line number: " +li.getLineNumber()+"-"+line);
if(line.indexOf(errMessage)>-1){
sb.append("line "+i+" : "+line+"\n");
}
i++;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(ds!=null){
ds.close();
ds=null;
}
if(li!=null){
li.close();
li=null;
}
if(fs!=null){
fs.close();
fs=null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String errM="Send mail failed after trying";
ReadLogs rl=new ReadLogs();
String path="E:\\programs\\antLogProject\\ShopzAll.log";
String err=rl.getErrMessage(path,errM);
System.out.println("err==="+err);
}

}
字符流版本
package com.ibm.logstool.io;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class ReadLogs {

public String getErrMessage(String filePath,String errMessage){
FileReader fr=null;
StringBuffer sb=new StringBuffer();
LineNumberReader lr=null;
BufferedReader br=null;
try {
File file=new File(filePath);
fr = new FileReader(file);
lr= new LineNumberReader(fr);
br=new BufferedReader(lr);
String line;
int i=1;
while((line=br.readLine())!=null){
//System.out.println("Did line number: " +li.getLineNumber()+"-"+line);
if(line.indexOf(errMessage)>-1){
sb.append("line "+i+" : "+line+"\n");
}
i++;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(br!=null){
br.close();
br=null;
}
if(lr!=null){
lr.close();
lr=null;
}
if(fr!=null){
fr.close();
fr=null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String errM="Send mail failed after trying";
ReadLogs rl=new ReadLogs();
String path="E:\\programs\\antLogProject\\ShopzAll.log";
String err=rl.getErrMessage(path,errM);
System.out.println("err==="+err);
}

}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6个月宝宝不喝奶怎么办 宝宝4月不吃母乳怎么办 不吃母乳怎么办 8个月 宝宝不吃奶粉母乳又不够怎么办 宝宝只吃母乳不吃奶粉怎么办 十个月宝宝不爱吃辅食怎么办 奶水不足宝宝不吃奶粉怎么办 两个月宝宝不吃奶瓶怎么办 宝宝拉的有鼻涕怎么办 七个月宝宝拉肚子拉水怎么办 十个月宝宝拉肚子拉水怎么办 一个月宝宝拉肚子拉水怎么办 五个月的宝宝拉肚子还拉水怎么办 4岁宝宝拉肚子怎么办拉水样 刚出生的婴儿呕奶怎么办 8岁儿童腹泻呕吐怎么办 一岁宝宝呕吐腹泻怎么办 5岁儿童腹泻呕吐怎么办 4岁宝宝呕吐腹泻怎么办 7岁儿童腹泻呕吐怎么办 一个月婴儿呕奶怎么办 一个月婴儿呕奶严重怎么办 6岁宝宝大便干燥怎么办 3岁儿童干咳嗽怎么办 3岁宝宝一直咳嗽怎么办 3岁宝宝风寒咳嗽怎么办 刚出生的宝宝拉奶瓣怎么办 小孩拉痢疾带血怎么办 2岁宝宝有点拉稀怎么办 1岁宝宝有点拉稀怎么办 3岁宝宝有点拉稀怎么办 甲减粘液性水肿怎么办 五个月宝宝断奶不吃奶粉怎么办 八个半月的宝宝不爱吃饭怎么办 十个半月宝宝不爱吃饭怎么办 九个半月宝宝不爱吃饭怎么办 七个半月宝宝不爱吃饭怎么办 8个半月宝宝不爱吃饭怎么办 八个半月宝宝不爱吃饭怎么办 特百惠杯子摔坏后不给换怎么办 特百惠水杯摔裂了怎么办