黑马程序员技术交流社区

标题: 关于流的关闭的问题 [打印本页]

作者: 落木萧萧    时间: 2013-9-22 18:58
标题: 关于流的关闭的问题
本帖最后由 落木萧萧 于 2013-9-22 20:08 编辑
  1. BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream("students.txt")));
复制代码
如上代码,当我需要关闭reader的时候,还要关闭其他几个直接new出来的流么?

作者: 胡智    时间: 2013-9-22 19:00
不需要,直接关reader流就可以了。
作者: 落木萧萧    时间: 2013-9-22 19:02
胡智 发表于 2013-9-22 19:00
不需要,直接关reader流就可以了。

为什么呢?

作者: 胡智    时间: 2013-9-22 19:09
落木萧萧 发表于 2013-9-22 19:02
为什么呢?

因为BufferedReader是用来缓冲的,InputStreamReader是用来对流进行转换的,实际对数据进行读取的是FileInputStream。
当你关闭BufferedReader流,实际就是关闭对数据操作的流。所以你只需要关BufferedReader就可以了。

作者: 何丛    时间: 2013-9-22 19:10
如果是BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt")));只需要br.close();
如果是InputStream is = new FileInputStream("test.txt");
         InputStreamReader isr = new InputStreamReader(is);
         BufferedReader br = new BufferedReader(isr);
   则需要逐一关闭
          br.close();
          isr.close();
          is.close();





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2