org.apache.commons.compress.archivers.zip
class ZipOutputStream extends DeflaterOutputStream
java.util.zip.ZipOutputStream
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 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
will be called.
Version: $Revision: 155439 $
Field Summary | |
---|---|
protected static ZipLong | CFH_SIG
central file header signature
|
protected static ZipLong | DD_SIG
data descriptor signature
|
static int | DEFLATED
Compression method for deflated entries.
|
static ZipLong | DOS_TIME_MIN
Smallest date/time ZIP can handle.
|
protected static ZipLong | EOCD_SIG
end of central dir signature
|
protected static ZipLong | LFH_SIG
local file header signature
|
static byte[] | LZERO
Helper, a 0 as ZipLong.
|
ZipLong | m_cdLength
Length of central directory.
|
ZipLong | m_cdOffset
Start of central directory.
|
String | m_comment
The file comment.
|
CRC32 | m_crc
CRC instance to avoid parsing DEFLATED data twice.
|
long | m_dataStart
Data for current entry started here.
|
String | m_encoding
The encoding to use for filenames and the file comment. |
ArrayList | m_entries
List of ZipEntries written so far.
|
ZipEntry | m_entry
Current entry.
|
int | m_level
Compression level for next entry.
|
int | m_method
Default compression method for next entry.
|
Hashtable | m_offsets
Holds the offsets of the LFH starts for each entry
|
long | m_written
Count the bytes written to out.
|
static int | STORED
Compression method for deflated entries.
|
static byte[] | ZERO
Helper, a 0 as ZipShort.
|
Constructor Summary | |
---|---|
ZipOutputStream(OutputStream output)
Creates a new ZIP OutputStream filtering the underlying stream.
|
Method Summary | |
---|---|
void | closeEntry()
Writes all necessary data for this entry.
|
void | finish()
Finishs writing the contents and closes this as well as the underlying
stream.
|
protected byte[] | getBytes(String name)
Retrieve the bytes for the given String in the encoding set for this
Stream.
|
String | getEncoding()
The encoding to use for filenames and the file comment.
|
void | putNextEntry(ZipEntry entry)
Begin writing next entry.
|
void | setComment(String comment)
Set the file comment.
|
void | setEncoding(String encoding)
The encoding to use for filenames and the file comment. |
void | setLevel(int level)
Sets the compression level for subsequent entries. |
void | setMethod(int method)
Sets the default compression method for subsequent entries. |
protected static ZipLong | toDosTime(Date time)
Convert a Date object to a DOS date/time field. |
void | write(byte[] buffer, int offset, int length)
Writes bytes to ZIP entry. |
protected void | writeCentralDirectoryEnd()
Writes the "End of central dir record"
|
protected void | writeCentralFileHeader(ZipEntry entry)
Writes the central file header entry
|
protected void | writeDataDescriptor(ZipEntry ze)
Writes the data descriptor entry
|
protected void | writeLocalFileHeader(ZipEntry entry)
Writes the local file header entry
|
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
For a list of possible values see http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html . Defaults to the platform's default character encoding.
Since: 1.3
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Parameters: output the output stream to write to
Since: 1.1
Throws: IOException if an IO failure causes operation to fail
Since: 1.1
Throws: IOException if an IO failure causes operation to fail
Since: 1.1
Parameters: name the name to decode
Returns: the bytes for string
Throws: ZipException if fail to retrieve bytes for specified string
Since: 1.3
Returns: null if using the platform's default character encoding.
Since: 1.3
Parameters: entry the entry
Throws: IOException if an IO failure causes operation to fail
Since: 1.1
Parameters: comment The new Comment value
Since: 1.1
For a list of possible values see http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html . Defaults to the platform's default character encoding.
Parameters: encoding The new Encoding value
Since: 1.3
Default is Deflater.DEFAULT_COMPRESSION.
Parameters: level The new Level value
Since: 1.1
Default is DEFLATED.
Parameters: method The new Method value
Since: 1.1
Stolen from InfoZip's fileio.c
Parameters: time Description of Parameter
Returns: Description of the Returned Value
Since: 1.1
Override is necessary to support STORED entries, as well as calculationg CRC automatically for DEFLATED entries.
Parameters: buffer the buffer to write to offset the offset to write to length the length of data to write
Throws: IOException if an IO error causes operation to fail
Throws: IOException when an IO erro causes operation to fail
Since: 1.1
Parameters: entry the zip entry
Throws: IOException when an IO error causes operation to fail
Since: 1.1
Parameters: ze Description of Parameter
Throws: IOException if an IO failure causes operation to fail
Since: 1.1
Parameters: entry the zip entry
Throws: IOException when an IO error causes operation to fail
Since: 1.1