Java.util.jar.JarInputStream class in Java
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.
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.
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.
- Manifest getManifest() : Returns the Manifest for this JAR file, or null if none.
Syntax :public 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.If verification has been enabled, any invalid signature detected while positioning the stream for the next entry will result in an exception.
Syntax :public ZipEntry getNextEntry()
throws IOException
Overrides:
getNextEntry in class ZipInputStream
Returns:
the next ZIP file entry, or null if there are no more entries
Throws:
ZipException
IOException
SecurityException
- 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.
Syntax :public JarEntry getNextJarEntry()
throws IOException
Returns:
the next JAR file entry, or null if there are no more entries
Throws:
ZipException
IOException
SecurityException
- 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.
Syntax :public int read(byte[] b,
int off,
int len)
throws IOException
Overrides:
read in class ZipInputStream
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
IndexOutOfBoundsException
ZipException
IOException
SecurityException
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.jar.JarInputStream;
import java.util.zip.ZipEntry;
class JarInputStreamDemo extends JarInputStream
{
public JarInputStreamDemo(InputStream in) throws IOException
{
super (in);
}
public static void main(String[] args) throws IOException
{
FileInputStream is = new FileInputStream( "codechecker.jar" );
JarInputStream jis = new JarInputStream(is);
JarInputStreamDemo obj= new JarInputStreamDemo(jis);
ZipEntry ze1=obj.createZipEntry( "ZipEntry" );
System.out.println(ze1.getName());
ZipEntry ze=jis.getNextEntry();
System.out.println(ze.getName());
System.out.println(jis.getManifest());
byte b[] = new byte [ 10 ];
while (jis.getNextJarEntry()!= null )
jis.read(b);
System.out.print(Arrays.toString(b));
jis.close();
}
}
|
Output :
Zipentry
Attention-64.png
java.util.jar.Manifest@513ee0c5
[-119, 80, 78, 71, 13, 10, 26, 10, 0, 0]
Last Updated :
12 Sep, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...