Example of JarInputStream in Java
January 17, 2014
java.util.jar.JarInputStream reads the jar from an input stream. If we read a jar normally as input stream, then we cannot know the jar details effectively in our application. Java provides the JarInputStream, that will convert input stream to jar input stream. Now with this instance we can fetch java.util.jar.JarEntry that will provide jar entry details. We can get the details of each entry of jar with its fully qualified name. JarInputStream also returns manifest details.
JarInputStream.getManifest()
It returns the java.util.jar.Manifest instance. Manifest will give the details of Manifest file which lies in jar.JarInputStream.getNextJarEntry()
It returns the jar entry starting from beginning. When we call it iteratively, it returns each jar entry and when finished, it returns null.JarEntry in Java
java.util.jar.JarEntry represents an entry of jar. A jar is the set of entries of classes and other files. While fetching details of entry, JarInputStream returns JarEntry to get details of any entry of a jar.JarInputStreamDemo.java
package com.concretepage.util.jar; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; public class JarInputStreamDemo { public static void main(String[] args) { try { File file = new File("D:/cp/jar/testjar.jar"); FileInputStream fis = new FileInputStream(file); JarInputStream jis = new JarInputStream(fis); System.out.println(jis.markSupported()); JarEntry je; while((je=jis.getNextJarEntry())!=null){ //gives fully qualified name of classes inside jar System.out.println(je.getName()); // gives the size of data per entry System.out.println(je.getCompressedSize()); //gives modification time System.out.println(je.getTime()); //gives comment per entry System.out.println(je.getComment()); } jis.close(); } catch (IOException e) { e.printStackTrace(); } } }