org.apache.tools.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.
Field Summary | |
---|---|
protected byte[] | buf
This buffer servers as a Deflater.
|
protected static byte[] | CFH_SIG
central file header signature
|
protected Deflater | def
This Deflater object is used for output.
|
protected static byte[] | DD_SIG
data descriptor signature
|
static int | DEFAULT_COMPRESSION
Default compression level for deflated entries.
|
static int | DEFLATED
Compression method for deflated entries.
|
protected static byte[] | EOCD_SIG
end of central dir signature
|
protected static byte[] | LFH_SIG
local file header signature
|
static int | STORED
Compression method for stored entries.
|
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 | |
---|---|
protected static long | adjustToLong(int i)
Assumes a negative integer really is a positive integer that
has wrapped around and re-creates the original value. |
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. |
protected static byte[] | toDosTime(long t)
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
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: Ant 1.7
Since: 1.1
Since: 1.1
Since: 1.1
Since: 1.1
Parameters: out the outputstream to zip
Since: 1.1
Parameters: file the file to zip to
Throws: IOException on error
Since: 1.14
Parameters: i the value to treat as unsigned int.
Returns: the unsigned int as a long.
Since: 1.34
Throws: IOException if an I/O error occurs.
Since: 1.14
Throws: IOException on error
Since: 1.1
Throws: IOException on error
Since: 1.14
Throws: IOException on error
Since: 1.1
Throws: IOException if an I/O error occurs.
Since: 1.14
Parameters: name the string to get bytes from
Returns: the bytes as a byte array
Throws: ZipException on error
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}.
Returns: true if seekable
Since: 1.17
Parameters: ze the entry to write
Throws: IOException on error
Since: 1.1
Parameters: comment the comment
Since: 1.1
For a list of possible values see http://java.sun.com/j2se/1.5.0/docs/guide/intl/encoding.doc.html. Defaults to the platform's default character encoding.
Parameters: encoding the encoding value
Since: 1.3
Default is Deflater.DEFAULT_COMPRESSION.
Parameters: level the compression level.
Throws: IllegalArgumentException if an invalid compression level is specified.
Since: 1.1
Default is DEFLATED.
Parameters: method an int
from java.util.zip.ZipEntry
Since: 1.1
Parameters: time the Date
to convert
Returns: the date as a ZipLong
Since: 1.1
Stolen from InfoZip's fileio.c
Parameters: t number of milliseconds since the epoch
Returns: the date as a byte array
Since: 1.26
Parameters: b the byte array to write offset the start position to write from length the number of bytes to write
Throws: IOException on error
Delegates to the three arg method.
Parameters: b the byte to write
Throws: IOException on error
Since: 1.14
Throws: IOException on error
Since: 1.1
Parameters: ze the entry to write
Throws: IOException on error
Since: 1.1
Parameters: ze the entry to write
Throws: IOException on error
Since: 1.1
Parameters: ze the entry to write
Throws: IOException on error
Since: 1.1
Parameters: data the byte array to write
Throws: IOException on error
Since: 1.14
Parameters: data the byte array to write offset the start position to write from length the number of bytes to write
Throws: IOException on error
Since: 1.14