# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Constants | Inherited Constants | Inherited Fields | Ctors | Methods | Protected Methods | Inherited Methods

# JarInputStream

`public class JarInputStream`
`` `` `` `` `extends ZipInputStream` ``

java.lang.Object
↳ | java.io.InputStream
| ↳ | java.io.FilterInputStream
|  | ↳ | java.util.zip.InflaterInputStream
|  |  | ↳ | java.util.zip.ZipInputStream
|  |  |  | ↳ | java.util.jar.JarInputStream

The `JarInputStream` class is used to read the contents of a JAR file from any input stream. It extends the class `java.util.zip.ZipInputStream` with support for reading an optional `Manifest` entry. The `Manifest` can be used to store meta-information about the JAR file and its entries.

See also:

- `Manifest`
- `ZipInputStream`

## Summary

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

### Inherited constants
From class `java.util.zip.ZipInputStream`
`int` | `CENATT`
`int` | `CENATX`
`int` | `CENCOM`
`int` | `CENCRC`
`int` | `CENDSK`
`int` | `CENEXT`
`int` | `CENFLG`
`int` | `CENHDR`
`int` | `CENHOW`
`int` | `CENLEN`
`int` | `CENNAM`
`int` | `CENOFF`
`long` | `CENSIG`
`int` | `CENSIZ`
`int` | `CENTIM`
`int` | `CENVEM`
`int` | `CENVER`
`int` | `ENDCOM`
`int` | `ENDHDR`
`int` | `ENDOFF`
`long` | `ENDSIG`
`int` | `ENDSIZ`
`int` | `ENDSUB`
`int` | `ENDTOT`
`int` | `EXTCRC`
`int` | `EXTHDR`
`int` | `EXTLEN`
`long` | `EXTSIG`
`int` | `EXTSIZ`
`int` | `LOCCRC`
`int` | `LOCEXT`
`int` | `LOCFLG`
`int` | `LOCHDR`
`int` | `LOCHOW`
`int` | `LOCLEN`
`int` | `LOCNAM`
`long` | `LOCSIG`
`int` | `LOCSIZ`
`int` | `LOCTIM`
`int` | `LOCVER`

### Inherited fields
From class `java.util.zip.InflaterInputStream`
`protected byte[]` | `buf` Input buffer for decompression.
`protected boolean` | `closed` This field is deprecated. This field will be removed from a future version of Android and should not be used. Subclasses that access this field need to be modified to keep track of their own closed state by overriding close().
`protected Inflater` | `inf` Decompressor for this stream.
`protected int` | `len` Length of input buffer.
From class `java.io.FilterInputStream`
`protected InputStream` | `in` The input stream to be filtered.

### Public constructors
`JarInputStream(InputStream in)` Creates a new `JarInputStream` and reads the optional manifest.
`JarInputStream(InputStream in, boolean verify)` Creates a new `JarInputStream` and reads the optional manifest.

### Public methods
`Manifest` | `getManifest()` Returns the `Manifest` for this JAR file, or `null` if none.
`ZipEntry` | `getNextEntry()` Reads the next ZIP file entry and positions the stream at the beginning of the entry data.
`JarEntry` | `getNextJarEntry()` Reads the next JAR 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 JAR file entry into an array of bytes.

### Protected methods
`ZipEntry` | `createZipEntry(String name)` Creates a new `JarEntry` (`ZipEntry`) for the specified JAR file entry name.

### Inherited methods
From class `java.util.zip.ZipInputStream`
`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.
`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.
From class `java.util.zip.InflaterInputStream`
`int` | `available()` Returns 0 after EOF has been reached, otherwise always return 1.
`void` | `close()` Closes this input stream and releases any system resources associated with the stream.
`void` | `fill()` Fills input buffer with more data to decompress.
`void` | `mark(int readlimit)` Marks the current position in this input stream.
`boolean` | `markSupported()` Tests if this input stream supports the `mark` and `reset` methods.
`int` | `read()` Reads a byte of uncompressed data.
`int` | `read(byte[] b, int off, int len)` Reads uncompressed data into an array of bytes.
`void` | `reset()` Repositions this stream to the position at the time the `mark` method was last called on this input stream.
`long` | `skip(long n)` Skips specified number of bytes of uncompressed data.
From class `java.io.FilterInputStream`
`int` | `available()` Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next caller of a method for this input stream.
`void` | `close()` Closes this input stream and releases any system resources associated with the stream.
`void` | `mark(int readlimit)` Marks the current position in this input stream.
`boolean` | `markSupported()` Tests if this input stream supports the `mark` and `reset` methods.
`int` | `read()` Reads the next byte of data from this input stream.
`int` | `read(byte[] b, int off, int len)` Reads up to `len` bytes of data from this input stream into an array of bytes.
`int` | `read(byte[] b)` Reads up to `byte.length` bytes of data from this input stream into an array of bytes.
`void` | `reset()` Repositions this stream to the position at the time the `mark` method was last called on this input stream.
`long` | `skip(long n)` Skips over and discards `n` bytes of data from the input stream.
From class `java.io.InputStream`
`int` | `available()` Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream.
`void` | `close()` Closes this input stream and releases any system resources associated with the stream.
`void` | `mark(int readlimit)` Marks the current position in this input stream.
`boolean` | `markSupported()` Tests if this input stream supports the `mark` and `reset` methods.
`abstract int` | `read()` Reads the next byte of data from the input stream.
`int` | `read(byte[] b, int off, int len)` Reads up to `len` bytes of data from the input stream into an array of bytes.
`int` | `read(byte[] b)` Reads some number of bytes from the input stream and stores them into the buffer array `b`.
`void` | `reset()` Repositions this stream to the position at the time the `mark` method was last called on this input stream.
`long` | `skip(long n)` Skips over and discards `n` bytes of data from this input stream.
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.
From interface `java.io.Closeable`
`abstract void` | `close()` Closes this stream and releases any system resources associated with it.
From interface `java.lang.AutoCloseable`
`abstract void` | `close()` Closes this resource, relinquishing any underlying resources.

## Constants

### CENATT

    public static final int CENATT

Constant Value: 36 (0x00000024)

### CENATX

    public static final int CENATX

Constant Value: 38 (0x00000026)

### CENCOM

    public static final int CENCOM

Constant Value: 32 (0x00000020)

### CENCRC

    public static final int CENCRC

Constant Value: 16 (0x00000010)

### CENDSK

    public static final int CENDSK

Constant Value: 34 (0x00000022)

### CENEXT

    public static final int CENEXT

Constant Value: 30 (0x0000001e)

### CENFLG

    public static final int CENFLG

Constant Value: 8 (0x00000008)

### CENHDR

    public static final int CENHDR

Constant Value: 46 (0x0000002e)

### CENHOW

    public static final int CENHOW

Constant Value: 10 (0x0000000a)

### CENLEN

    public static final int CENLEN

Constant Value: 24 (0x00000018)

### CENNAM

    public static final int CENNAM

Constant Value: 28 (0x0000001c)

### CENOFF

    public static final int CENOFF

Constant Value: 42 (0x0000002a)

### CENSIG

    public static final long CENSIG

Constant Value: 33639248 (0x0000000002014b50)

### CENSIZ

    public static final int CENSIZ

Constant Value: 20 (0x00000014)

### CENTIM

    public static final int CENTIM

Constant Value: 12 (0x0000000c)

### CENVEM

    public static final int CENVEM

Constant Value: 4 (0x00000004)

### CENVER

    public static final int CENVER

Constant Value: 6 (0x00000006)

### ENDCOM

    public static final int ENDCOM

Constant Value: 20 (0x00000014)

### ENDHDR

    public static final int ENDHDR

Constant Value: 22 (0x00000016)

### ENDOFF

    public static final int ENDOFF

Constant Value: 16 (0x00000010)

### ENDSIG

    public static final long ENDSIG

Constant Value: 101010256 (0x0000000006054b50)

### ENDSIZ

    public static final int ENDSIZ

Constant Value: 12 (0x0000000c)

### ENDSUB

    public static final int ENDSUB

Constant Value: 8 (0x00000008)

### ENDTOT

    public static final int ENDTOT

Constant Value: 10 (0x0000000a)

### EXTCRC

    public static final int EXTCRC

Constant Value: 4 (0x00000004)

### EXTHDR

    public static final int EXTHDR

Constant Value: 16 (0x00000010)

### EXTLEN

    public static final int EXTLEN

Constant Value: 12 (0x0000000c)

### EXTSIG

    public static final long EXTSIG

Constant Value: 134695760 (0x0000000008074b50)

### EXTSIZ

    public static final int EXTSIZ

Constant Value: 8 (0x00000008)

### LOCCRC

    public static final int LOCCRC

Constant Value: 14 (0x0000000e)

### LOCEXT

    public static final int LOCEXT

Constant Value: 28 (0x0000001c)

### LOCFLG

    public static final int LOCFLG

Constant Value: 6 (0x00000006)

### LOCHDR

    public static final int LOCHDR

Constant Value: 30 (0x0000001e)

### LOCHOW

    public static final int LOCHOW

Constant Value: 8 (0x00000008)

### LOCLEN

    public static final int LOCLEN

Constant Value: 22 (0x00000016)

### LOCNAM

    public static final int LOCNAM

Constant Value: 26 (0x0000001a)

### LOCSIG

    public static final long LOCSIG

Constant Value: 67324752 (0x0000000004034b50)

### LOCSIZ

    public static final int LOCSIZ

Constant Value: 18 (0x00000012)

### LOCTIM

    public static final int LOCTIM

Constant Value: 10 (0x0000000a)

### LOCVER

    public static final int LOCVER

Constant Value: 4 (0x00000004)

## Public constructors

### JarInputStream

    public JarInputStream (InputStream in)

Creates a new `JarInputStream` and reads the optional manifest. If a manifest is present, also attempts to verify the signatures if the JarInputStream is signed.

Parameters
`in` | `InputStream`: the actual input stream

Throws
`IOException` | if an I/O error has occurred

### JarInputStream

    public JarInputStream (InputStream in,
                    boolean verify)

Creates a new `JarInputStream` and reads the optional manifest. If a manifest is present and verify is true, also attempts to verify the signatures if the JarInputStream is signed.

Parameters
`in` | `InputStream`: the actual input stream
`verify` | `boolean`: whether or not to verify the JarInputStream if it is signed.

Throws
`IOException` | if an I/O error has occurred

## Public methods

### getManifest

    public Manifest getManifest ()

Returns the `Manifest` for this JAR file, or `null` if none.

Returns
`Manifest` | the `Manifest` for this JAR file, or `null` if none.

### getNextEntry

    public ZipEntry getNextEntry ()

Reads the next ZIP file entry and positions the stream at the beginning of the entry data. If verification has been enabled, any invalid signature detected while positioning the stream for the next entry will result in an exception.

Returns
`ZipEntry` | the next ZIP file entry, or null if there are no more entries

Throws
`ZipException` | if a ZIP file error has occurred
`IOException` | if an I/O error has occurred
`SecurityException` | if any of the jar file entries are incorrectly signed.

### getNextJarEntry

    public JarEntry getNextJarEntry ()

Reads the next JAR file entry and positions the stream at the beginning of the entry data. If verification has been enabled, any invalid signature detected while positioning the stream for the next entry will result in an exception.

Returns
`JarEntry` | the next JAR file entry, or null if there are no more entries

Throws
`ZipException` | if a ZIP file error has occurred
`IOException` | if an I/O error has occurred
`SecurityException` | if any of the jar file entries are incorrectly signed.

### read

    public int read (byte[] b,
                    int off,
                    int len)

Reads from the current JAR file 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. If verification has been enabled, any invalid signature on the current entry will be reported at some point before the end of the entry is reached.

Parameters
`b` | `byte`: the buffer into which the data is read
`off` | `int`: the start offset in the destination array `b`
`len` | `int`: the maximum number of bytes to read

Returns
`int` | the actual number of bytes read, or -1 if the end of the entry is reached

Throws
`NullPointerException` | If `b` is `null`.
`IndexOutOfBoundsException` | If `off` is negative, `len` is negative, or `len` is greater than `b.length - off`
`ZipException` | if a ZIP file error has occurred
`IOException` | if an I/O error has occurred
`SecurityException` | if any of the jar file entries are incorrectly signed.

## Protected methods

### createZipEntry

    protected ZipEntry createZipEntry (String name)

Creates a new `JarEntry` (`ZipEntry`) for the specified JAR file entry name. The manifest attributes of the specified JAR file entry name will be copied to the new `JarEntry`.

Parameters
`name` | `String`: the name of the JAR/ZIP file entry

Returns
`ZipEntry` | the `JarEntry` object just created

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*