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
Inherited Constant Summary
Inherited Field Summary
Public Constructor Summary
JarInputStream(InputStream in, boolean verify)
Creates a new
JarInputStream and reads the optional
manifest. |
Public Method Summary
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 Method Summary
ZipEntry |
createZipEntry(String name)
Creates a new
JarEntry (ZipEntry ) for the
specified JAR file entry name. |
Inherited Method Summary
Public Constructors
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 | the actual input stream |
---|
Throws
IOException | if an I/O error has occurred |
---|
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 | the actual input stream |
---|---|
verify | whether or not to verify the JarInputStream if it is signed. |
Throws
IOException | if an I/O error has occurred |
---|
Public Methods
public Manifest getManifest ()
Returns the Manifest
for this JAR file, or
null
if none.
Returns
- the
Manifest
for this JAR file, ornull
if none.
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
- 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. |
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
- 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. |
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 | the buffer into which the data is read |
---|---|
off | the start offset in the destination array b |
len | the maximum number of bytes to read |
Returns
- 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
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 | the name of the JAR/ZIP file entry |
---|
Returns
- the
JarEntry
object just created