java读取扩展名为.log文件总是隔行读取,如何实现全部读取。

没啥意思了 2011-11-28 01:59:57
我的写的代码,为什么总是行读取,不能全部读取呢?请高手帮忙
代码如下:


我的代码如下

BufferedReader br = null;
PrintWriter pw = null;
String str = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream("E:iptv_CCTV_AUTO_scheduler.log")));
pw = new PrintWriter(new FileWriter("E:/25_new.txt"),true);
while(br.readLine() != null){
str = br.readLine();
if(str.indexOf("INFO") != -1){
pw.println(str);
}
if(str.indexOf("ConnectCount") != -1){
pw.println(str);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
pw.flush();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}

...全文
246 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
没啥意思了 2011-11-28
  • 打赏
  • 举报
回复
明白了 谢谢大家了!
皮特张 2011-11-28
  • 打赏
  • 举报
回复
你的代码有问题。1楼和2楼都指出问题所在了,你改下就可以了。
huntor 2011-11-28
  • 打赏
  • 举报
回复
for(String str = br.readLine(); str != null; str = br.readLine()){
没啥意思了 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huntor 的回复:]
while(br.readLine() != null){
str = br.readLine();
=>
连读两次,你把其中一次丢掉了。
[/Quote]

您应该没明白我的意思,我是要把所有含有"INFO"和"ConnectCount"的行提取出来,但总是会少一半。
后面我试了试全部读取发现默认隔行读取数据,是我的代码有问题还是log文件的问题??
oO临时工Oo 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huntor 的回复:]

while(br.readLine() != null){
str = br.readLine();
=>
连读两次,你把其中一次丢掉了。
[/Quote]

就是这样,可以改为

while((str = br.readLine() ) != null){
huntor 2011-11-28
  • 打赏
  • 举报
回复
while(br.readLine() != null){
str = br.readLine();
=>
连读两次,你把其中一次丢掉了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧