java.util.zip

Class ZipInputStream

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

public class ZipInputStream
extends InflaterInputStream
implements java.util.zip.ZipConstants

This is a FilterInputStream that reads the files in an zip archive one after another. It has a special method to get the zip entry of the next file. The zip entry contains information about the file name size, compressed size, CRC, etc. It includes support for STORED and DEFLATED entries.

Field Summary

Fields inherited from class java.util.zip.InflaterInputStream

buf, inf, len

Fields inherited from class java.io.FilterInputStream

in

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

ZipInputStream(InputStream in)
Creates a new Zip input stream, reading a zip archive.

Method Summary

int
available()
Returns 0 once the end of the stream (EOF) has been reached.
void
close()
Closes the zip file.
void
closeEntry()
Closes the current zip entry and moves to the next one.
protected ZipEntry
createZipEntry(String name)
Creates a new zip entry for the given name.
ZipEntry
getNextEntry()
Open the next entry from the zip archive, and return its description.
int
read()
Reads a byte from the current zip entry.
int
read(byte[] b, int off, int len)
Reads a block of bytes from the current zip entry.

Methods inherited from class java.util.zip.InflaterInputStream

available, close, fill, mark, markSupported, read, read, reset, skip

Methods inherited from class java.io.FilterInputStream

available, close, mark, markSupported, read, read, read, reset, skip

Methods inherited from class java.io.InputStream

available, close, mark, markSupported, read, read, read, reset, skip

Methods inherited from class java.lang.Object

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

Constructor Details

ZipInputStream

public ZipInputStream(InputStream in)
Creates a new Zip input stream, reading a zip archive.

Method Details

available

public int available()
            throws IOException
Returns 0 once the end of the stream (EOF) has been reached. Otherwise returns 1.
Overrides:
available in interface InflaterInputStream

close

public void close()
            throws IOException
Closes the zip file.
Specified by:
close in interface Closeable
close in interface AutoCloseable
Overrides:
close in interface InflaterInputStream
Throws:
IOException - if a i/o error occured.

closeEntry

public void closeEntry()
            throws IOException
Closes the current zip entry and moves to the next one.

createZipEntry

protected ZipEntry createZipEntry(String name)
Creates a new zip entry for the given name. This is equivalent to new ZipEntry(name).
Parameters:
name - the name of the zip entry.

getNextEntry

public ZipEntry getNextEntry()
            throws IOException
Open the next entry from the zip archive, and return its description. If the previous entry wasn't closed, this method will close it.

read

public int read()
            throws IOException
Reads a byte from the current zip entry.
Overrides:
read in interface InflaterInputStream
Returns:
the byte or -1 on EOF.
Throws:
IOException - if a i/o error occured.

read

public int read(byte[] b,
                int off,
                int len)
            throws IOException
Reads a block of bytes from the current zip entry.
Overrides:
read in interface InflaterInputStream
Returns:
the number of bytes read (may be smaller, even before EOF), or -1 on EOF.
Throws:
IOException - if a i/o error occured.

ZipInputStream.java -- Copyright (C) 2001, 2002, 2003, 2004, 2005 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.