2 helloselang92 helloselang92 于 2014.08.02 19:51 提问

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!!!”这几个字符啊,但是程序没有读到,求解,怎么回事?

3个回答

zhouhua0104
zhouhua0104   2014.08.07 11:46
已采纳

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

helloselang92
helloselang92 3Q
3 年多之前 回复
u013284424
u013284424   2014.08.03 08:53

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

helloselang92
helloselang92 3Q
3 年多之前 回复
sinat_19351993
sinat_19351993   2014.08.12 10:28

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!