
Reimplementation of
java.util.zip.ZipOutputStream that does handle the extended
functionality of this package, especially internal/external file
attributes and extra fields with different layouts for local file
data and central directory entries.
This class will try to use RandomAccessFile when you know that the output is going to go to a
file.
If RandomAccessFile cannot be used, this implementation will use
a Data Descriptor to store size and CRC information for DEFLATED entries, this means, you don't need to
calculate them yourself. Unfortunately this is not possible for
the STORED method, here setting the CRC and
uncompressed size information is required before putNextEntry can be called.