A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 麦列霍夫 中级黑马   /  2015-6-5 09:41  /  1301 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(files));

  String line = null ;
        While((line=br.readLine())!=null){
                bw.write(line);
                bw.newLine();
                bw.flush();
}}

        br.close();
        bw.close();


用IO流进行文件传输之后,为了节约内存空间我们都要把相应的流对象关闭掉。但是针对上面的代码,BufferReader()里面传入的也是一个流对象:new FileReader(file),那么为什么再程序结束后不需要关闭呢 ?面试的时候被问到过,感觉自己解释的不太好,求大神专业赐教。

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

12 个回复

倒序浏览
我也被问过这问题
回复 使用道具 举报
正在学习中,完了就可以帮你了
回复 使用道具 举报
BufferedReader br = new BufferedReader(new FileReader(file));
new BufferedReader时,new FileReader(file)作为参数,也相当于把BufferedReader包裹在FileReader外面了,
关闭了BufferedReader就无需在关闭FileReader了。就像大的管道里面套了一个小管道,关闭了大的,里面的小的自然
就关了
回复 使用道具 举报
学习下学习
回复 使用道具 举报
关闭了BufferedReader就无需在关闭FileReader了。就像大的管道里面套了一个小管道,关闭了大的,里面的小的自然就关了
这个是正确的吗
回复 使用道具 举报
外面嵌套里面的,关闭外面的流就不需要关闭里面的流...
回复 使用道具 举报
学习一下!
回复 使用道具 举报
麦列霍夫 来自手机 中级黑马 2015-6-12 23:13:16
9#
路途遥远 发表于 2015-6-5 11:19
BufferedReader br = new BufferedReader(new FileReader(file));
new BufferedReader时,new FileReader(f ...

嗯,学习了。
回复 使用道具 举报
麦列霍夫 来自手机 中级黑马 2015-6-12 23:14:22
10#
欧阳文 发表于 2015-6-5 15:33
外面嵌套里面的,关闭外面的流就不需要关闭里面的流...

跟我面试时候回答的差不多,但是老师可能需要更具体的解释
回复 使用道具 举报
麦列霍夫 来自手机 中级黑马 2015-6-12 23:15:32
11#
少年闰土 发表于 2015-6-5 10:10
正在学习中,完了就可以帮你了

回复 使用道具 举报
麦列霍夫 来自手机 中级黑马 2015-6-12 23:16:47
12#
景彬 发表于 2015-6-5 14:45
关闭了BufferedReader就无需在关闭FileReader了。就像大的管道里面套了一个小管道,关闭了大的,里面的小的 ...

四楼那个回答应该就是比较合适的理解了
回复 使用道具 举报
看一下            
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马