while(br.readLine()!=null){ 
System.out.println(br.readLine()); 

其中每个循环(一次打印)br.readLine()被执行了两次,当然是各行打印!!

解决方案 »

  1.   

    应该是while((str=br.readLine())!=null){
       System.out.println(str);
    }
      

  2.   

    你每调用一次read()或者readLine(),指针都会移动的。像下面这么写就可以了:
    BufferedReader br=new BufferedReader(file); 
    String line = null;
    while((line = br.readLine()) != null){ 
    System.out.println(line); 
    }
      

  3.   

    太簡單了吧!
    br.read()已經從文件中讀走了一個字符;你再用br.readLine()當然
    讀到的就是一行中少了第一個字符第二種情況也同樣
    你先是br.readLine()!=null讀出了一行,但並沒用System.out;而
    再次用System.out.println(br.readLine())當然會輸出新的一行了;如果你改成
    BufferedReader br=new BufferedReader(file); 
    char ch;
    while((ch=br.read())!=-1){ 
    System.out.print(ch);
    System.out.println(br.readLine()); 
    } 或
    BufferedReader br=new BufferedReader(file); 
    String str;
    while((str=br.readLine())!=null){ 
    System.out.println(str); 

    就一點也不奇怪了
      

  4.   

    你自己写错了,
    两段while里的都不一样,
    给分吧!哈哈!
      

  5.   

    BufferedReader br=new BufferedReader(file); 
    while(br.readLine()!=null){ //第一行
    System.out.println(br.readLine()); //第二行