In Java does it matter whether I instantiate a ZipOutputStream first, or the BufferedOutputStream first? Example:
FileOutputStream dest = new FileOutputStream(fi
You should:
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
because you want to buffer the writing to the disc (because this is much more efficient in big data blocks than in a lot of little ones).
This
new BufferedOutputStream(new ZipOutputStream(dest));
would buffer before zip compression. But this all happens in the memory and does not need buffering because a lot of little memory accesses are about the same speed as a few big ones. In memory general the needed time is proportional to the number of bytes read/write.
As mentioned in the comments:
The methods of ZipOutputStream
which are not part of BufferedOutputStream
would not be available also. E.g. putNextEntry
and closeEntry
.