Reimplementation of {@link java.util.zip.ZipOutputStream java.util.zip.ZipOutputStream} that does handle the extendedfunctionality 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 {@link java.io.RandomAccessFile RandomAccessFile} when you know that the output is going to go to afile.
If RandomAccessFile cannot be used, this implementation will use a Data Descriptor to store size and CRC information for {@link #DEFLATED DEFLATED} entries, this means, you don't need tocalculate them yourself. Unfortunately this is not possible for the {@link #STORED STORED} method, here setting the CRC anduncompressed size information is required before {@link #putNextEntry putNextEntry} can be called.
@author Stefan Bodewig
@author Richard Evans
@version $Revision: 1.1 $