org.codehaus.plexus.archiver.zip
public class ZipOutputStream extends FilterOutputStream
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 class will try to use java.io.RandomAccessFile
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: $Revision: 2436 $ $Date: 2005-09-01 13:20:41 -0400 (Thu, 01 Sep 2005) $ from org.apache.ant.tools.zip.ZipOutputStream v1.24
Field Summary | |
---|---|
protected byte[] | buf
This buffer servers as a Deflater.
|
ZipLong | cdLength
Length of central directory.
|
ZipLong | cdOffset
Start of central directory.
|
String | comment
The file comment.
|
CRC32 | crc
CRC instance to avoid parsing DEFLATED data twice.
|
protected static ZipLong | CFH_SIG
central file header signature
|
long | dataStart
Data for local header data
|
protected Deflater | def
This Deflater object is used for output.
|
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.
|
String | encoding
The encoding to use for filenames and the file comment.
|
Vector | entries
List of ZipEntries written so far.
|
ZipEntry | entry
Current entry.
|
protected static ZipLong | EOCD_SIG
end of central dir signature
|
boolean | hasCompressionLevelChanged
Has the compression level changed when compared to the last
entry?
|
int | level
Compression level for next entry.
|
long | localDataStart
Offset for CRC entry in the local file header data for the
current entry starts here.
|
protected static ZipLong | LFH_SIG
local file header signature
|
static byte[] | LZERO
Helper, a 0 as ZipLong.
|
int | method
Default compression method for next entry.
|
Hashtable | offsets
Holds the offsets of the LFH starts for each entry.
|
RandomAccessFile | raf
Optional random access output.
|
static int | STORED
Compression method for deflated entries.
|
long | written
Count the bytes written to out.
|
static byte[] | ZERO
Helper, a 0 as ZipShort.
|
Constructor Summary | |
---|---|
ZipOutputStream(OutputStream out)
Creates a new ZIP OutputStream filtering the underlying stream.
| |
ZipOutputStream(File file)
Creates a new ZIP OutputStream writing to a File. |
Method Summary | |
---|---|
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
|
This attribute is only protected to provide a level of API
backwards compatibility. This class used to extend java.util.zip.DeflaterOutputStream DeflaterOutputStream
up to
Revision 1.13.
Since: 1.14
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
This attribute is only protected to provide a level of API
backwards compatibility. This class used to extend java.util.zip.DeflaterOutputStream DeflaterOutputStream
up to
Revision 1.13.
Since: 1.14
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.5
Since: 1.1
Since: 1.15
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.14
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.14
Throws: IOException if an I/O error occurs.
Since: 1.14
Since: 1.1
Since: 1.14
Since: 1.1
Throws: IOException if an I/O error occurs.
Since: 1.14
Since: 1.3
Returns: null if using the platform's default character encoding.
Since: 1.3
For seekable streams, you don't need to calculate the CRC or uncompressed size for STORED entries before invoking ZipOutputStream.
Since: 1.17
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
Default is Deflater.DEFAULT_COMPRESSION.
Since: 1.1
Default is DEFLATED.
Since: 1.1
Stolen from InfoZip's fileio.c
Since: 1.1
Delegates to the three arg method.
Since: 1.14
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.14
Since: 1.14