java.util.zip

Class ZipOutputStream

Implemented Interfaces:
AutoCloseable, Closeable, Flushable, java.util.zip.ZipConstants
Known Direct Subclasses:
JarOutputStream

public class ZipOutputStream
extends DeflaterOutputStream
implements java.util.zip.ZipConstants

This is a FilterOutputStream that writes the files into a zip archive one after another. It has a special method to start a new zip entry. The zip entries contains information about the file name size, compressed size, CRC, etc. It includes support for STORED and DEFLATED entries. This class is not thread safe.

Field Summary

static int
DEFLATED
Compression method.
static int
STORED
Compression method.

Fields inherited from class java.util.zip.DeflaterOutputStream

buf, def

Fields inherited from class java.io.FilterOutputStream

out

Fields inherited from interface java.util.zip.ZipConstants

CENATT, CENATX, CENCOM, CENCRC, CENDSK, CENEXT, CENFLG, CENHDR, CENHOW, CENLEN, CENNAM, CENOFF, CENSIG, CENSIZ, CENTIM, CENVEM, CENVER, ENDCOM, ENDHDR, ENDOFF, ENDSIG, ENDSIZ, ENDSUB, ENDTOT, EXTCRC, EXTHDR, EXTLEN, EXTSIG, EXTSIZ, LOCCRC, LOCEXT, LOCFLG, LOCHDR, LOCHOW, LOCLEN, LOCNAM, LOCSIG, LOCSIZ, LOCTIM, LOCVER

Constructor Summary

ZipOutputStream(OutputStream out)
Creates a new Zip output stream, writing a zip archive.

Method Summary

void
closeEntry()
Closes the current entry.
void
finish()
Finishes the stream.
void
putNextEntry(ZipEntry entry)
Starts a new Zip entry.
void
setComment(String comment)
Set the zip file comment.
void
setLevel(int level)
Sets default compression level.
void
setMethod(int method)
Sets default compression method.
void
write(byte[] b, int off, int len)
Writes the given buffer to the current entry.

Methods inherited from class java.util.zip.DeflaterOutputStream

close, deflate, finish, flush, write, write

Methods inherited from class java.io.FilterOutputStream

close, flush, write, write, write

Methods inherited from class java.io.OutputStream

close, flush, write, write, write

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

DEFLATED

public static final int DEFLATED
Compression method. This method uses the Deflater.
Field Value:
8

STORED

public static final int STORED
Compression method. This method doesn't compress at all.
Field Value:
0

Constructor Details

ZipOutputStream

public ZipOutputStream(OutputStream out)
Creates a new Zip output stream, writing a zip archive.
Parameters:
out - the output stream to which the zip archive is written.

Method Details

closeEntry

public void closeEntry()
            throws IOException
Closes the current entry.
Throws:
IOException - if an I/O error occured.

finish

public void finish()
            throws IOException
Finishes the stream. This will write the central directory at the end of the zip file and flush the stream.
Overrides:
finish in interface DeflaterOutputStream
Throws:
IOException - if an I/O error occured.

putNextEntry

public void putNextEntry(ZipEntry entry)
            throws IOException
Starts a new Zip entry. It automatically closes the previous entry if present. If the compression method is stored, the entry must have a valid size and crc, otherwise all elements (except name) are optional, but must be correct if present. If the time is not set in the entry, the current time is used.
Parameters:
entry - the entry.
Throws:
IOException - if an I/O error occured.

setComment

public void setComment(String comment)
Set the zip file comment.
Parameters:
comment - the comment.
Throws:
IllegalArgumentException - if encoding of comment is longer than 0xffff bytes.

setLevel

public void setLevel(int level)
Sets default compression level. The new level will be activated immediately.
Throws:
IllegalArgumentException - if level is not supported.
See Also:
Deflater

setMethod

public void setMethod(int method)
Sets default compression method. If the Zip entry specifies another method its method takes precedence.
Parameters:
method - the method.
Throws:
IllegalArgumentException - if method is not supported.
See Also:
STORED, DEFLATED

write

public void write(byte[] b,
                  int off,
                  int len)
            throws IOException
Writes the given buffer to the current entry.
Overrides:
write in interface DeflaterOutputStream
Throws:
IOException - if an I/O error occured.

ZipOutputStream.java -- Copyright (C) 2001, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.