【发布时间】:2013-08-05 08:59:41
【问题描述】:
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,还是我需要手动关闭它们?
【问题讨论】:
-
你还应该小心总是关闭最外层的流;否则您可能会因为包装流中的未刷新缓冲区而导致数据丢失,这些缓冲区使它们的包装流在他们的鼻子下关闭。