ZipInputStream (Java Platform SE 7 ) (original) (raw)
- java.io.InputStream
- java.io.FilterInputStream
- java.util.zip.InflaterInputStream
* * java.util.zip.ZipInputStream
- java.util.zip.InflaterInputStream
- java.io.FilterInputStream
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
JarInputStream
public class ZipInputStream
extends InflaterInputStream
This class implements an input stream filter for reading files in the ZIP file format. Includes support for both compressed and uncompressed entries.
Field Summary
Fields
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 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 * ### Fields inherited from class java.util.zip.[InflaterInputStream](../../../java/util/zip/InflaterInputStream.html "class in java.util.zip") `[buf](../../../java/util/zip/InflaterInputStream.html#buf), [inf](../../../java/util/zip/InflaterInputStream.html#inf), [len](../../../java/util/zip/InflaterInputStream.html#len)` * ### Fields inherited from class java.io.[FilterInputStream](../../../java/io/FilterInputStream.html "class in java.io") `[in](../../../java/io/FilterInputStream.html#in)`
Constructor Summary
Constructors
Constructor and Description ZipInputStream(InputStream in) Creates a new ZIP input stream. ZipInputStream(InputStream in,Charset charset) Creates a new ZIP input stream. Method Summary
Methods
Modifier and Type Method and Description int available() Returns 0 after EOF has reached for the current entry data, otherwise always return 1. void close() Closes this input stream and releases any system resources associated with the stream. void closeEntry() Closes the current ZIP entry and positions the stream for reading the next entry. protected ZipEntry createZipEntry(String name) Creates a new ZipEntry object for the specified entry name. ZipEntry getNextEntry() Reads the next ZIP file entry and positions the stream at the beginning of the entry data. int read(byte[] b, int off, int len) Reads from the current ZIP entry into an array of bytes. long skip(long n) Skips specified number of bytes in the current ZIP entry. * ### Methods inherited from class java.util.zip.[InflaterInputStream](../../../java/util/zip/InflaterInputStream.html "class in java.util.zip") `[fill](../../../java/util/zip/InflaterInputStream.html#fill%28%29), [mark](../../../java/util/zip/InflaterInputStream.html#mark%28int%29), [markSupported](../../../java/util/zip/InflaterInputStream.html#markSupported%28%29), [read](../../../java/util/zip/InflaterInputStream.html#read%28%29), [reset](../../../java/util/zip/InflaterInputStream.html#reset%28%29)` * ### Methods inherited from class java.io.[FilterInputStream](../../../java/io/FilterInputStream.html "class in java.io") `[read](../../../java/io/FilterInputStream.html#read%28byte[]%29)` * ### Methods inherited from class java.lang.[Object](../../../java/lang/Object.html "class in java.lang") `[clone](../../../java/lang/Object.html#clone%28%29), [equals](../../../java/lang/Object.html#equals%28java.lang.Object%29), [finalize](../../../java/lang/Object.html#finalize%28%29), [getClass](../../../java/lang/Object.html#getClass%28%29), [hashCode](../../../java/lang/Object.html#hashCode%28%29), [notify](../../../java/lang/Object.html#notify%28%29), [notifyAll](../../../java/lang/Object.html#notifyAll%28%29), [toString](../../../java/lang/Object.html#toString%28%29), [wait](../../../java/lang/Object.html#wait%28%29), [wait](../../../java/lang/Object.html#wait%28long%29), [wait](../../../java/lang/Object.html#wait%28long,%20int%29)`
Field Detail
* #### LOCSIG public static final long LOCSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCSIG) * #### EXTSIG public static final long EXTSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.EXTSIG) * #### CENSIG public static final long CENSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENSIG) * #### ENDSIG public static final long ENDSIG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.ENDSIG) * #### LOCHDR public static final int LOCHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCHDR) * #### EXTHDR public static final int EXTHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.EXTHDR) * #### CENHDR public static final int CENHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENHDR) * #### ENDHDR public static final int ENDHDR See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.ENDHDR) * #### LOCVER public static final int LOCVER See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCVER) * #### LOCFLG public static final int LOCFLG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCFLG) * #### LOCHOW public static final int LOCHOW See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCHOW) * #### LOCTIM public static final int LOCTIM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCTIM) * #### LOCCRC public static final int LOCCRC See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCCRC) * #### LOCSIZ public static final int LOCSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCSIZ) * #### LOCLEN public static final int LOCLEN See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCLEN) * #### LOCNAM public static final int LOCNAM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCNAM) * #### LOCEXT public static final int LOCEXT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.LOCEXT) * #### EXTCRC public static final int EXTCRC See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.EXTCRC) * #### EXTSIZ public static final int EXTSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.EXTSIZ) * #### EXTLEN public static final int EXTLEN See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.EXTLEN) * #### CENVEM public static final int CENVEM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENVEM) * #### CENVER public static final int CENVER See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENVER) * #### CENFLG public static final int CENFLG See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENFLG) * #### CENHOW public static final int CENHOW See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENHOW) * #### CENTIM public static final int CENTIM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENTIM) * #### CENCRC public static final int CENCRC See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENCRC) * #### CENSIZ public static final int CENSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENSIZ) * #### CENLEN public static final int CENLEN See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENLEN) * #### CENNAM public static final int CENNAM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENNAM) * #### CENEXT public static final int CENEXT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENEXT) * #### CENCOM public static final int CENCOM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENCOM) * #### CENDSK public static final int CENDSK See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENDSK) * #### CENATT public static final int CENATT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENATT) * #### CENATX public static final int CENATX See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENATX) * #### CENOFF public static final int CENOFF See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.CENOFF) * #### ENDSUB public static final int ENDSUB See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.ENDSUB) * #### ENDTOT public static final int ENDTOT See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.ENDTOT) * #### ENDSIZ public static final int ENDSIZ See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.ENDSIZ) * #### ENDOFF public static final int ENDOFF See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.ENDOFF) * #### ENDCOM public static final int ENDCOM See Also: [Constant Field Values](../../../constant-values.html#java.util.zip.ZipInputStream.ENDCOM)
Constructor Detail
* #### ZipInputStream public ZipInputStream([InputStream](../../../java/io/InputStream.html "class in java.io") in) Creates a new ZIP input stream. The UTF-8 [charset](../../../java/nio/charset/Charset.html "class in java.nio.charset") is used to decode the entry names. Parameters: `in` \- the actual input stream * #### ZipInputStream public ZipInputStream([InputStream](../../../java/io/InputStream.html "class in java.io") in, [Charset](../../../java/nio/charset/Charset.html "class in java.nio.charset") charset) Creates a new ZIP input stream. Parameters: `in` \- the actual input stream `charset` \- The [charset](../../../java/nio/charset/Charset.html "class in java.nio.charset") to be used to decode the ZIP entry name (ignored if the[ language encoding bit](package-summary.html#lang%5Fencoding) of the ZIP entry's general purpose bit flag is set). Since: 1.7
Method Detail
* #### getNextEntry public [ZipEntry](../../../java/util/zip/ZipEntry.html "class in java.util.zip") getNextEntry() throws [IOException](../../../java/io/IOException.html "class in java.io") Reads the next ZIP file entry and positions the stream at the beginning of the entry data. Returns: the next ZIP file entry, or null if there are no more entries Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP file error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred * #### closeEntry public void closeEntry() throws [IOException](../../../java/io/IOException.html "class in java.io") Closes the current ZIP entry and positions the stream for reading the next entry. Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP file error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred * #### available public int available() throws [IOException](../../../java/io/IOException.html "class in java.io") Returns 0 after EOF has reached for the current entry data, otherwise always return 1. Programs should not count on this method to return the actual number of bytes that could be read without blocking. **Overrides:** `[available](../../../java/util/zip/InflaterInputStream.html#available%28%29)` in class `[InflaterInputStream](../../../java/util/zip/InflaterInputStream.html "class in java.util.zip")` Returns: 1 before EOF and 0 after EOF has reached for current entry. Throws: `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error occurs. * #### read public int read(byte[] b, int off, int len) throws [IOException](../../../java/io/IOException.html "class in java.io") Reads from the current ZIP entry into an array of bytes. If `len` is not zero, the method blocks until some input is available; otherwise, no bytes are read and `0` is returned. **Overrides:** `[read](../../../java/util/zip/InflaterInputStream.html#read%28byte[],%20int,%20int%29)` in class `[InflaterInputStream](../../../java/util/zip/InflaterInputStream.html "class in java.util.zip")` Parameters: `b` \- the buffer into which the data is read `off` \- the start offset in the destination array `b` `len` \- the maximum number of bytes read Returns: the actual number of bytes read, or -1 if the end of the entry is reached Throws: `[NullPointerException](../../../java/lang/NullPointerException.html "class in java.lang")` \- if `b` is `null`. `[IndexOutOfBoundsException](../../../java/lang/IndexOutOfBoundsException.html "class in java.lang")` \- if `off` is negative,`len` is negative, or `len` is greater than`b.length - off` `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP file error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred See Also: [FilterInputStream.in](../../../java/io/FilterInputStream.html#in) * #### skip public long skip(long n) throws [IOException](../../../java/io/IOException.html "class in java.io") Skips specified number of bytes in the current ZIP entry. **Overrides:** `[skip](../../../java/util/zip/InflaterInputStream.html#skip%28long%29)` in class `[InflaterInputStream](../../../java/util/zip/InflaterInputStream.html "class in java.util.zip")` Parameters: `n` \- the number of bytes to skip Returns: the actual number of bytes skipped Throws: `[ZipException](../../../java/util/zip/ZipException.html "class in java.util.zip")` \- if a ZIP file error has occurred `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred `[IllegalArgumentException](../../../java/lang/IllegalArgumentException.html "class in java.lang")` \- if n < 0 * #### close public void close() throws [IOException](../../../java/io/IOException.html "class in java.io") Closes this input stream and releases any system resources associated with the stream. **Specified by:** `[close](../../../java/io/Closeable.html#close%28%29)` in interface `[Closeable](../../../java/io/Closeable.html "interface in java.io")` **Specified by:** `[close](../../../java/lang/AutoCloseable.html#close%28%29)` in interface `[AutoCloseable](../../../java/lang/AutoCloseable.html "interface in java.lang")` **Overrides:** `[close](../../../java/util/zip/InflaterInputStream.html#close%28%29)` in class `[InflaterInputStream](../../../java/util/zip/InflaterInputStream.html "class in java.util.zip")` Throws: `[IOException](../../../java/io/IOException.html "class in java.io")` \- if an I/O error has occurred See Also: [FilterInputStream.in](../../../java/io/FilterInputStream.html#in) * #### createZipEntry protected [ZipEntry](../../../java/util/zip/ZipEntry.html "class in java.util.zip") createZipEntry([String](../../../java/lang/String.html "class in java.lang") name) Creates a new `ZipEntry` object for the specified entry name. Parameters: `name` \- the ZIP file entry name Returns: the ZipEntry just created
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.