org.apache.tools.zip
Class ZipOutputStream
FilterOutputStream
org.apache.tools.zip.ZipOutputStream
public class ZipOutputStream
extends FilterOutputStream
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.
Version:
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.
|
protected byte[] | buf - This buffer servers as a Deflater.
|
protected Deflater | def - This Deflater object is used for output.
|
ZipOutputStream(File file) - Creates a new ZIP OutputStream writing to a File.
|
ZipOutputStream(OutputStream out) - Creates a new ZIP OutputStream filtering the underlying stream.
|
void | close() - Closes this output stream and releases any system resources
associated with the stream.
|
void | closeEntry() - Writes all necessary data for this entry.
|
protected void | deflate() - Writes next block of compressed data to the output stream.
|
void | finish() - Finishs writing the contents and closes this as well as the
underlying stream.
|
void | flush() - Flushes this output stream and forces any buffered output bytes
to be written out to the 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.
|
boolean | isSeekable() - This method indicates whether this archive is writing to a seekable stream (i.e., to a random
access file).
|
void | putNextEntry(ZipEntry ze) - 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[] b, int offset, int length) - Writes bytes to ZIP entry.
|
void | write(int b) - Writes a single byte to ZIP entry.
|
protected void | writeCentralDirectoryEnd() - Writes the "End of central dir record"
|
protected void | writeCentralFileHeader(ZipEntry ze) - Writes the central file header entry
|
protected void | writeDataDescriptor(ZipEntry ze) - Writes the data descriptor entry
|
protected void | writeLocalFileHeader(ZipEntry ze) - Writes the local file header entry
|
protected void | writeOut(byte[] data) - Write bytes to output or random access file
|
protected void | writeOut(byte[] data, int offset, int length) - Write bytes to output or random access file
|
CFH_SIG
protected static final ZipLong CFH_SIG
central file header signature
- 1.1
DD_SIG
protected static final ZipLong DD_SIG
data descriptor signature
- 1.1
DEFLATED
public static final int DEFLATED
Compression method for deflated entries.
- 1.1
EOCD_SIG
protected static final ZipLong EOCD_SIG
end of central dir signature
- 1.1
LFH_SIG
protected static final ZipLong LFH_SIG
local file header signature
- 1.1
STORED
public static final int STORED
Compression method for deflated entries.
- 1.1
buf
protected byte[] buf
This buffer servers as a Deflater.
This attribute is only protected to provide a level of API
backwards compatibility. This class used to extend
DeflaterOutputStream
up to
Revision 1.13.
- 1.14
def
protected Deflater def
This Deflater object is used for output.
This attribute is only protected to provide a level of API
backwards compatibility. This class used to extend
DeflaterOutputStream
up to
Revision 1.13.
- 1.14
ZipOutputStream
public ZipOutputStream(File file)
throws IOException
Creates a new ZIP OutputStream writing to a File. Will use
random access if possible.
- 1.14
ZipOutputStream
public ZipOutputStream(OutputStream out)
Creates a new ZIP OutputStream filtering the underlying stream.
- 1.1
close
public void close()
throws IOException
Closes this output stream and releases any system resources
associated with the stream.
- 1.14
closeEntry
public void closeEntry()
throws IOException
Writes all necessary data for this entry.
- 1.1
deflate
protected final void deflate()
throws IOException
Writes next block of compressed data to the output stream.
- 1.14
finish
public void finish()
throws IOException
Finishs writing the contents and closes this as well as the
underlying stream.
- 1.1
flush
public void flush()
throws IOException
Flushes this output stream and forces any buffered output bytes
to be written out to the stream.
- 1.14
getBytes
protected byte[] getBytes(String name)
throws ZipException
Retrieve the bytes for the given String in the encoding set for
this Stream.
- 1.3
getEncoding
public String getEncoding()
The encoding to use for filenames and the file comment.
- null if using the platform's default character encoding.
- 1.3
isSeekable
public boolean isSeekable()
This method indicates whether this archive is writing to a seekable stream (i.e., to a random
access file).
For seekable streams, you don't need to calculate the CRC or
uncompressed size for
STORED
entries before
invoking
putNextEntry(ZipEntry)
.
- 1.17
putNextEntry
public void putNextEntry(ZipEntry ze)
throws IOException
Begin writing next entry.
- 1.1
setComment
public void setComment(String comment)
Set the file comment.
- 1.1
setEncoding
public void setEncoding(String encoding)
- 1.3
setLevel
public void setLevel(int level)
Sets the compression level for subsequent entries.
Default is Deflater.DEFAULT_COMPRESSION.
- 1.1
setMethod
public void setMethod(int method)
Sets the default compression method for subsequent entries.
Default is DEFLATED.
- 1.1
toDosTime
protected static ZipLong toDosTime(Date time)
Convert a Date object to a DOS date/time field.
Stolen from InfoZip's
fileio.c
- 1.1
write
public void write(byte[] b,
int offset,
int length)
throws IOException
Writes bytes to ZIP entry.
write
public void write(int b)
throws IOException
Writes a single byte to ZIP entry.
Delegates to the three arg method.
- 1.14
writeCentralDirectoryEnd
protected void writeCentralDirectoryEnd()
throws IOException
Writes the "End of central dir record"
- 1.1
writeCentralFileHeader
protected void writeCentralFileHeader(ZipEntry ze)
throws IOException
Writes the central file header entry
- 1.1
writeDataDescriptor
protected void writeDataDescriptor(ZipEntry ze)
throws IOException
Writes the data descriptor entry
- 1.1
writeLocalFileHeader
protected void writeLocalFileHeader(ZipEntry ze)
throws IOException
Writes the local file header entry
- 1.1
writeOut
protected final void writeOut(byte[] data)
throws IOException
Write bytes to output or random access file
- 1.14
writeOut
protected final void writeOut(byte[] data,
int offset,
int length)
throws IOException
Write bytes to output or random access file
- 1.14
Copyright B) 2000-2005 Apache Software Foundation. All Rights Reserved.