【发布时间】:2013-01-05 21:48:20
【问题描述】:
在 Java 中,我先实例化 ZipOutputStream 还是先实例化 BufferedOutputStream 是否重要?示例:
FileOutputStream dest = new FileOutputStream(file);
ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(dest));
// use zip output stream to write to
或者:
FileOutputStream dest = new FileOutputStream(file);
BufferedOutputStream out = new BufferedOutputStream(new ZipOutputStream(dest));
// use buffered stream to write to
在我的非科学时间安排中,我似乎无法在这里说出太多不同。我在 Java API 中看不到任何说明这些方法之一是否必要或首选的内容。有什么建议吗?似乎先压缩输出然后缓冲写入会更有效。
【问题讨论】:
-
理论上,压缩然后缓冲会更快。但是,
GZipOutputStream有一个内部缓冲区,因此它不会将单个字节写入底层流。根据底层流类型(例如,文件与套接字)和缓冲区的相对大小,您可能会或可能不会看到任何差异。
标签: java io outputstream