【发布时间】:2016-01-13 22:36:49
【问题描述】:
公共无效关闭() 抛出 IOException
关闭此输入流并释放与该流关联的所有系统资源。
InputStream 的 close 方法什么都不做。
那么它什么也没做或什么?
【问题讨论】:
-
@Saif ... 在它下面说它没有。
标签: java inputstream
公共无效关闭() 抛出 IOException
关闭此输入流并释放与该流关联的所有系统资源。
InputStream 的 close 方法什么都不做。
那么它什么也没做或什么?
【问题讨论】:
标签: java inputstream
不,它什么都不做,但是 InputStream 是一个 abstract 类,其中 close 不是抽象的(它实现了 java.io.Closeable ),它有一个空的主体。 InputStream 的实现者可以选择覆盖该方法。 FileInputStream 关闭文件输入流并释放ByteInputStream 不执行任何操作的所有系统资源。
【讨论】:
InputStream 的 close() 方法什么也不做。 InputStream 的子类的close() 方法可以做一些事情。
【讨论】:
close() 和InputStream,因为它可能对某些人有所帮助,并且在一般情况下不会受到伤害?
<pre>try(InputStream in = new XxxInputStream(...) { } catch(Exception e) {}</pre> 自动处理,因为流实现了 <pre>AutoCloseable</pre>提供的流也可以这样做。
正如@Kayaman 所说,InputStream 是一个抽象类,close 方法没有在那里实现。如果你很好奇,你可以看到这个link,它在java.io.FileInputStream 的 openjdk 版本 8u40-b25 上播种了关闭方法,来自 GrepCode。
【讨论】: