【发布时间】:2014-08-13 07:40:06
【问题描述】:
InputStream in = SomeClass.getInputStream(...);
BufferedInputStream bis = new BufferedInputStream(in);
try {
// read data from bis
} finally {
bis.close();
in.close();
}
BufferedInputStream.close() 的 javadoc 没有提及底层流是否关闭:
关闭此输入流并释放所有关联的系统资源 与流。一旦流被关闭,进一步读取(), available()、reset() 或 skip() 调用将引发 IOException。 关闭之前关闭的流没有任何效果。
显式调用in.close() 是必要的,还是应该通过调用bis.close() 来关闭它?
【问题讨论】:
-
简短回答:是的。长答案:Yeeeeesssss。说真的,看docjar.com/html/api/java/io/BufferedInputStream.java.html#472
标签: java inputstream bufferedinputstream