在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
有一个内部缓冲区,因此它不会将单个字节写入底层流中。根据底层流类型(例如,文件与套接字)和缓冲区的相对大小,您可能会看到差异,也可能不会看到任何差异。 - parsifal