org.codehaus.plexus.archiver.zip
public class ZipOutputStream extends FilterOutputStream
This class will try to use {@link 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 {@link #DEFLATED DEFLATED} entries, this means, you don't need to calculate them yourself. Unfortunately this is not possible for the {@link #STORED STORED} method, here setting the CRC and uncompressed size information is required before {@link #putNextEntry 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 {@link 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 {@link 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 {@link #STORED} entries before invoking {@link #putNextEntry}.
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