FileReader err=new FileReader("err.txt");
BufferedReader error=new BufferedReader(err)
  while(error.readLine()!=null){
    System.out.println(error.readLine());         
   }
err.txt中的内容是从命令行中抓去的出错信息:
test1.cpp: In function `int main(int, char**)':
test1.cpp:5: `cout' undeclared (first use this function)
test1.cpp:5: (Each undeclared identifier is reported only once for 
   each function it appears in.)
test1.cpp:5: `endl' undeclared (first use this function)
test1.cpp:8: `strcmp' undeclared (first use this function)
但是屏幕上打印的结果是:
test1.cpp:5: `cout' undeclared (first use this function) 
   each function it appears in.)
test1.cpp:8: `strcmp' undeclared (first use this function)
即只有2.4.6行,不知为什么?
请教!

解决方案 »

  1.   

    因该是这样的FileReader err=new FileReader("err.txt");
    BufferedReader error=new BufferedReader(err);
    String s = null;
    while((s = error.readLine())!=null){
    System.out.println(s);
    }
      

  2.   

    调用readLine,光标就下移一行,当然是这样了
      

  3.   

    while(error.readLine()!=null){
        System.out.println(error.readLine());         
       }
    如果这样的话是执行了两次读取操作 ,readLine()执行一次后指针就跑到下一行去了
    while((s = error.readLine())!=null){
    System.out.println(s);
    }
    这样就是把读取的字符串打印出来
      

  4.   

    是啊,java里面处理输入流的时候都是这样的,处理完数据后,将当前位置(可以看成文件指针)下移
      

  5.   

    FileReader fr = new FileReader("cmd.txt"); 
    BufferedReader br = new BufferedReader(fr); 
    record = new String(); 
    while ((record = br.readLine()) != null) { 
    System.out.println(record); 
    }