La clase JarInputStream se usa para leer el contenido de un archivo JAR desde cualquier flujo de entrada. Extiende la clase java.util.zip.ZipInputStream con soporte para leer una entrada de Manifiesto opcional. El Manifiesto se puede utilizar para almacenar metainformación sobre el archivo JAR y sus entradas.
Constructores
- JarInputStream(InputStream in) : crea un nuevo JarInputStream y lee el manifiesto opcional.
- JarInputStream(InputStream in, verificación booleana): crea un nuevo JarInputStream y lee el manifiesto opcional.
Métodos:
- Protected ZipEntry createZipEntry(String name) : crea un nuevo JarEntry (ZipEntry) para el nombre de entrada del archivo JAR especificado. Los atributos manifiestos del nombre de entrada del archivo JAR especificado se copiarán en el nuevo JarEntry.
- Manifiesto getManifest() : Devuelve el Manifiesto para este archivo JAR, o nulo si no hay ninguno.
Syntax :public Manifest getManifest() Returns: the Manifest for this JAR file, or null if none.
- ZipEntry getNextEntry() : lee la siguiente entrada del archivo ZIP y coloca la secuencia al principio de los datos de entrada. Si se ha habilitado la verificación, cualquier firma no válida detectada al colocar la secuencia para la siguiente entrada generará una excepción.
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() : lee la siguiente entrada del archivo JAR y coloca la secuencia al principio de los datos de entrada. Si se ha habilitado la verificación, cualquier firma no válida detectada al colocar la secuencia para la siguiente entrada generará una excepción.
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) : Lee la entrada del archivo JAR actual en una array de bytes. Si len no es cero, el método se bloquea hasta que haya alguna entrada disponible; de lo contrario, no se leen bytes y se devuelve 0. Si se ha habilitado la verificación, cualquier firma no válida en la entrada actual se informará en algún momento antes de que se alcance el final de la entrada.
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
//Java program demonstrating JarInputStream methods 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); //illustrating createZipEntry() method ZipEntry ze1=obj.createZipEntry("ZipEntry"); System.out.println(ze1.getName()); //illustrating getNextEntry() method ZipEntry ze=jis.getNextEntry(); System.out.println(ze.getName()); //illustrating getManifest(); System.out.println(jis.getManifest()); // Reading from the current JAR file entry // into an array of 10 bytes byte b[] = new byte[10]; //illustrating getNextJarEntry() //illustrating read(byte b[],int off,int length) while(jis.getNextJarEntry()!= null) jis.read(b); System.out.print(Arrays.toString(b)); //closing the stream jis.close(); } }
Producción :
Zipentry Attention-64.png java.util.jar.Manifest@513ee0c5 [-119, 80, 78, 71, 13, 10, 26, 10, 0, 0]
Este artículo es una contribución de Nishant Sharma . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA