JAVA代码问题,帮我看看

import java.io.*;
public class chuliliu{
public static void main(String[] args){
try{

           BufferedReader br=new BufferedReader(new FileReader("f:/test1.txt"));
           BufferedWriter bw=new BufferedWriter(new FileWriter("f:/test2.txt"));
           PrintWriter out=new PrintWriter(bw);
           String s;  
           while((s=br.readLine())!=null)  
        {  
            out.write(s);  



        }   

           out.flush();
           System.out.println(s);
           out.println(s);  
           br.close();
           bw.close();
          }catch (IOException e)  
           {  
        e.printStackTrace();  
           }

}
}

为什么运行后会输出null,也就是说s没有内容,但是我在f:/test1.txt这个文本里面写了“java!!!”这几个字符啊,但是程序没有读到,求解,怎么回事?

输出当然是null了,因为你在读取文件的时候当s等于null的退出循环,这时候s已经是null,如果你在循环中输出s那就不是null了

while当s为null时退出循环,在之后打印s当然是null了

做最后一次循环的时候s=null,所以循环退出了你再打印s只能是null了,你把 System.out.println(s);放到while循环里边就能看到s了