OutputStream fos;
OutputStream bos;
OutputStream zos;
try {
fos = new FileOutputStream(anyFile);
bos = new BufferedOutputStream(fos);
zos = new ZipOutputStream(bos);
} finally {
if (zos != null) {
zos.close(); // + exception handling
}
}
关闭zos
是否也自动关闭bos
和fos
?或者是否需要手动关闭它们?关闭嵌套流还会关闭其父流?
你也应该小心*总是*关闭最外面的流;否则你可能会由于包装流中的未刷新缓冲区而导致数据丢失,因为它们的包装流在它们的鼻子下被关闭。 –