缓存流的问题,新手求解答

import java.io.*;
public class Student {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    String[] content={"好久不见","你好吗","常联系"};
    File file=new File("word.txt");
    try{
        FileWriter fw=new FileWriter(file);
        BufferedWriter bufw=new BufferedWriter(fw);
        for(int k=0;k<content.length;k++){
            bufw.write(content[k]);
            bufw.newLine();
        }
        bufw.close();
        fw.close();
    }catch(Exception e){
        e.printStackTrace();
    }
    try{
        FileReader fr=new FileReader(file);
        BufferedReader bufr=new BufferedReader(fr);
        int i=0;
        String s=null;
        while((s=bufr.readLine())!=null){
            i++;
            System.out.println("第"+i+"行:"+s);
        }
        bufr.close();
        fr.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}

}
这段代码中的while语句中,()里的判断如果改成bufr.readLine()!=null,或者输出改成System.out.println("第"+i+"行:"+bufr.readLine());输出都会有错,这是为什么啊。。。。新手求解答

while(bufr.readLine()!=null){
i++;
System.out.println("第"+i+"行:"+bufr.readLine());
}
你是问这种意思吗?
如果是的话,显然是错的,
这样等于一次循环读取两次,
while()读取一次到文件结尾,那么循环体里的read会出现错误