在以下代码中:
DataInputStream in = new DataInputStream(
new BufferedInputStream(new FileInputStream(file)));
in.close();
除了关闭“顶层”流之外,我需要关闭其他两个流吗?
DataInputStream
继承自FilterInputStream
,而FilterInputStream
的文档说明它会调用底层InputStream
上的close
方法:http://download.oracle.com/javase/6/docs/api/java/io/FilterInputStream.html 因此,您可以知道该行为不仅仅是特定实现的副作用。 - T.J. Crowder