java - 在 Java 中关闭输入流

标签 java inputstream

我在 try/catch block 中有以下代码

 InputStream inputstream = conn.getInputStream();
 InputStreamReader inputstreamreader = new  InputStreamReader(inputstream);
 BufferedReader bufferedreader = new BufferedReader(inputstreamreader);

我的问题是,当我必须在 finally block 中关闭这些流时,我是必须关闭所有 3 个流还是只关闭 befferedreader 会关闭所有其他流?

最佳答案

按照惯例,包装流(包装现有流)在关闭底层流时会关闭它们,因此在您的示例中只需要关闭 bufferedreader 即可。此外,关闭一个已经关闭的流通常是无害的,因此关闭所有 3 个流也不会受到伤害。

关于java - 在 Java 中关闭输入流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263926/

相关文章:

java - 输入流到 int 数组

Java Applet 获取 JAR 之外的文件

java - 本地小程序安全异常

java - 为什么每次我们想用方向键移动图形时都需要使用计时器?

java - IntelliJ IDEA - 安装 Java 11 后 Maven 找不到 JAVA_HOME

java - VPS 和基础架构即服务 IaaS,有什么区别?

java - 从局部变量创建 ByteArrayInputStream 是否有效?

java - int 数组到 ArrayList 的转换

c++ - get函数的stringstream不删除字符

java - 该方法必须返回InputStream类型的结果