|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.io.OutputStream
java.io.FilterOutputStream
java.util.zip.DeflaterOutputStream
org.apache.commons.compress.zip.ZipOutputStream
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 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.
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. |
protected static ZipLong |
EOCD_SIG
end of central dir signature |
protected static ZipLong |
LFH_SIG
local file header signature |
static int |
STORED
Compression method for deflated entries. |
Fields inherited from class java.util.zip.DeflaterOutputStream |
buf, def |
Fields inherited from class java.io.FilterOutputStream |
out |
Constructor Summary | |
ZipOutputStream(java.io.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(java.lang.String name)
Retrieve the bytes for the given String in the encoding set for this Stream. |
java.lang.String |
getEncoding()
The encoding to use for filenames and the file comment. |
void |
putNextEntry(ZipEntry entry)
Begin writing next entry. |
void |
setComment(java.lang.String comment)
Set the file comment. |
void |
setEncoding(java.lang.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(java.util.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 |
Methods inherited from class java.util.zip.DeflaterOutputStream |
close, deflate, write |
Methods inherited from class java.io.FilterOutputStream |
flush, write |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int DEFLATED
public static final int STORED
protected static final ZipLong LFH_SIG
protected static final ZipLong DD_SIG
protected static final ZipLong CFH_SIG
protected static final ZipLong EOCD_SIG
Constructor Detail |
public ZipOutputStream(java.io.OutputStream output)
output
- the output stream to write toMethod Detail |
protected static ZipLong toDosTime(java.util.Date time)
Stolen from InfoZip's fileio.c
time
- Description of Parameter
public void setComment(java.lang.String comment)
comment
- The new Comment valuepublic void setEncoding(java.lang.String encoding)
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.
encoding
- The new Encoding valuepublic void setLevel(int level)
Default is Deflater.DEFAULT_COMPRESSION.
level
- The new Level valuepublic void setMethod(int method)
Default is DEFLATED.
method
- The new Method valuepublic java.lang.String getEncoding()
public void closeEntry() throws java.io.IOException
java.io.IOException
- if an IO failure causes operation to failpublic void finish() throws java.io.IOException
java.io.IOException
- if an IO failure causes operation to failpublic void putNextEntry(ZipEntry entry) throws java.io.IOException
entry
- the entry
java.io.IOException
- if an IO failure causes operation to failpublic void write(byte[] buffer, int offset, int length) throws java.io.IOException
Override is necessary to support STORED entries, as well as calculationg CRC automatically for DEFLATED entries.
buffer
- the buffer to write tooffset
- the offset to write tolength
- the length of data to write
java.io.IOException
- if an IO error causes operation to failprotected byte[] getBytes(java.lang.String name) throws java.util.zip.ZipException
name
- the name to decode
java.util.zip.ZipException
- if fail to retrieve bytes for specified stringprotected void writeCentralDirectoryEnd() throws java.io.IOException
java.io.IOException
- when an IO erro causes operation to failprotected void writeCentralFileHeader(ZipEntry entry) throws java.io.IOException
entry
- the zip entry
java.io.IOException
- when an IO error causes operation to failprotected void writeDataDescriptor(ZipEntry ze) throws java.io.IOException
ze
- Description of Parameter
java.io.IOException
- if an IO failure causes operation to failprotected void writeLocalFileHeader(ZipEntry entry) throws java.io.IOException
entry
- the zip entry
java.io.IOException
- when an IO error causes operation to fail
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |