public class ZipOutputStream extends DeflaterOutputStream
FilterOutputStream
that
compresses data entries into a ZIP-archive output stream.
ZipOutputStream
is used to write ZipEntries
to the underlying
stream. Output from ZipOutputStream
conforms to the ZipFile
file format.
While DeflaterOutputStream
can write a compressed ZIP-archive
entry, this extension can write uncompressed entries as well. In this case
special rules apply, for this purpose refer to the file format
specification.
Using ZipOutputStream
is a little more complicated than GZIPOutputStream
because ZIP archives are containers that can contain multiple files. This code creates a ZIP
archive containing several files, similar to the zip(1)
utility.
OutputStream os = ... ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(os)); try { for (int i = 0; i < filecount; ++i) { string filename = ... byte[] bytes = ... zipentry entry = new zipentry(filename); zos.putnextentry(entry); zos.write(bytes); zos.closeentry(); } } finally { zos.close(); }
Modifier and Type | Field and Description |
---|---|
static int |
CENATT |
static int |
CENATX |
static int |
CENCOM |
static int |
CENCRC |
static int |
CENDSK |
static int |
CENEXT |
static int |
CENFLG |
static int |
CENHDR |
static int |
CENHOW |
static int |
CENLEN |
static int |
CENNAM |
static int |
CENOFF |
static long |
CENSIG |
static int |
CENSIZ |
static int |
CENTIM |
static int |
CENVEM |
static int |
CENVER |
static int |
DEFLATED
Indicates deflated entries.
|
static int |
ENDCOM |
static int |
ENDHDR |
static int |
ENDOFF |
static long |
ENDSIG |
static int |
ENDSIZ |
static int |
ENDSUB |
static int |
ENDTOT |
static int |
EXTCRC |
static int |
EXTHDR |
static int |
EXTLEN |
static long |
EXTSIG |
static int |
EXTSIZ |
static int |
LOCCRC |
static int |
LOCEXT |
static int |
LOCFLG |
static int |
LOCHDR |
static int |
LOCHOW |
static int |
LOCLEN |
static int |
LOCNAM |
static long |
LOCSIG |
static int |
LOCSIZ |
static int |
LOCTIM |
static int |
LOCVER |
static int |
STORED
Indicates uncompressed entries.
|
buf, def
out
Constructor and Description |
---|
ZipOutputStream(OutputStream p1)
Constructs a new
ZipOutputStream with the specified output
stream. |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the current
ZipEntry , if any, and the underlying output
stream. |
void |
closeEntry()
Closes the current
ZipEntry . |
void |
finish()
Indicates that all entries have been written to the stream.
|
void |
putNextEntry(ZipEntry ze)
Writes entry information to the underlying stream.
|
void |
setComment(String comment)
Sets the
ZipFile comment associated with the file being written. |
void |
setLevel(int level)
Sets the compression level to be used for writing entry data.
|
void |
setMethod(int method)
Sets the compression method to be used when compressing entry data.
|
void |
write(byte[] buffer,
int offset,
int byteCount)
Writes data for the current entry to the underlying stream.
|
deflate, flush, write
write
public static final int DEFLATED
public static final int STORED
public static final long LOCSIG
public static final long EXTSIG
public static final long CENSIG
public static final long ENDSIG
public static final int LOCHDR
public static final int EXTHDR
public static final int CENHDR
public static final int ENDHDR
public static final int LOCVER
public static final int LOCFLG
public static final int LOCHOW
public static final int LOCTIM
public static final int LOCCRC
public static final int LOCSIZ
public static final int LOCLEN
public static final int LOCNAM
public static final int LOCEXT
public static final int EXTCRC
public static final int EXTSIZ
public static final int EXTLEN
public static final int CENVEM
public static final int CENVER
public static final int CENFLG
public static final int CENHOW
public static final int CENTIM
public static final int CENCRC
public static final int CENSIZ
public static final int CENLEN
public static final int CENNAM
public static final int CENEXT
public static final int CENCOM
public static final int CENDSK
public static final int CENATT
public static final int CENATX
public static final int CENOFF
public static final int ENDSUB
public static final int ENDTOT
public static final int ENDSIZ
public static final int ENDOFF
public static final int ENDCOM
public ZipOutputStream(OutputStream p1)
ZipOutputStream
with the specified output
stream.p1
- the OutputStream
to write the data to.public void close() throws IOException
ZipEntry
, if any, and the underlying output
stream. If the stream is already closed this method does nothing.close
in interface Closeable
close
in interface AutoCloseable
close
in class DeflaterOutputStream
IOException
- If an error occurs closing the stream.public void closeEntry() throws IOException
ZipEntry
. Any entry terminal data is written
to the underlying stream.IOException
- If an error occurs closing the entry.public void finish() throws IOException
finish
in class DeflaterOutputStream
IOException
- if an error occurs while terminating the stream.public void putNextEntry(ZipEntry ze) throws IOException
write()
. After data is
written closeEntry()
must be called to complete the writing of
the entry to the underlying stream.ze
- the ZipEntry
to store.IOException
- If an error occurs storing the entry.write(byte[], int, int)
public void setComment(String comment)
ZipFile
comment associated with the file being written.comment
- the comment associated with the file.public void setLevel(int level)
Deflater
compression level bounds.level
- the compression level (ranging from -1 to 8).Deflater
public void setMethod(int method)
STORED
(for no compression) or DEFLATED
.method
- the compression method to use.public void write(byte[] buffer, int offset, int byteCount) throws IOException
write
in class DeflaterOutputStream
buffer
- the buffer to write.offset
- the index of the first byte in buffer
to write.byteCount
- the number of bytes in buffer
to write.IOException
- If an error occurs writing to the stream