日期:2014-05-20  浏览次数:20692 次

关于缓冲字符流中关闭的问题
小弟在学习过程中遇到这样一个问题 
try {
                  fr.close();        //这里frbr fw br是FileReader BufferedReader
                  br.close();        //FileWriter  BufferedWriter
          bw.close();
          fw.close();

} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace()
小弟一开始将fw.close放在bw.close前面,导致编译不过去,百度了一下前辈们说是先关闭buffer类再关闭file类,小弟改后确实可以了,但是发现前面fr.close放在br.close前面确没有报错 这是为什么呢?为什么bw.close要放在fw.close前面?小弟分不是很多 求谅解。

------解决方案--------------------
BufferedWriter是处理流,FileWriter是节点流,你建bw时候用fw做的参数,我这么想的,没试过
------解决方案--------------------
br和bw分别会调用fr和fw,所以fr和fw不需再close一次
所以
br.close();
bw.close();
就OK了