关于输入输出流close方法关闭顺序的问题

关于输入输出流close方法关闭顺序的问题

问题描述:

老师在课程中讲过,我的理解是缓冲流可以起到一个读写通信之间的“桥梁的桥梁”的作用,所以在关闭输入输出流的时候我的理解是应该先关闭缓冲流通道,再关闭文件输入输出流,但是为什么老师在课程中是反过来先关闭文件后关闭缓冲呢?


相关截图:

https://img1.sycdn.imooc.com//climg/6234903d09c6957602360210.jpg


相关代码:

// 我自己理解方式写的代码
bos.close();
fos.close();

bis.close();
fis.close();


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,例题中的关闭流也是可以的,不过更建议关闭流的顺序是先定义的后关闭,后定义的先关闭,也就是如下这样:

bis.close();
fis.close();
bos.close();
fos.close();

祝:学习愉快~

  • Macrohard 提问者 #1

    好的,老师,那我理解的是,这就是个约定俗成的习惯嘛,因为“先定义的后关闭,后定义的先关闭”,这样我感觉能体现出来层次感,就像是从里往外一层一层跳出来。

    毕竟在程序的末尾写上close的话,我觉得顺序应该不影响,除非是在程序中间调用close,如果顺序错了可能还没传入到位置就关闭了,但是养成顺序习惯的话,看代码层次会容易理解一些。

    2022-03-19 16:13:07
  • 好帮手慕小脸 回复 提问者 Macrohard #2

    同学你好,是的,理解是可以的,关闭流的顺序就像我们进行开门时,从大门打开,然后打开卧室门,进入房间,出去时,在我们进行关门时,就要先关卧室门,再关大门。所以这里同学按照顺序进行关闭就可以

    祝学习愉快~

    2022-03-19 16:20:03
  • Macrohard 提问者 回复 好帮手慕小脸 #3

    好的,谢谢老师

    2022-03-19 16:25:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师