Esta clase implementa un filtro de flujo de entrada para leer archivos en formato ZIP. Incluye soporte para entradas comprimidas y sin comprimir.
Constructores:
- ZipInputStream(InputStream in) : crea un nuevo flujo de entrada ZIP.
- ZipInputStream(InputStream in, Charset charset) : Crea un nuevo flujo de entrada ZIP
Métodos :
- int available() : Devuelve 0 después de que EOF haya alcanzado los datos de entrada actuales; de lo contrario, siempre devuelve .
Los programas no deben contar con este método para devolver el número real de bytes
que se pueden leer sin bloquear.Syntax :public int available() throws IOException Overrides: available in class InflaterInputStream Returns: 1 before EOF and 0 after EOF has reached for current entry. Programs should not count on this method to return the actual number of bytes that could be read without blocking. Throws: IOException
- void close() : Cierra este flujo de entrada y libera cualquier recurso del sistema asociado con el flujo.
Syntax :public void close() throws IOException Overrides: close in class InflaterInputStream Throws: IOException
- void closeEntry() : Cierra la entrada ZIP actual y posiciona la transmisión para leer la siguiente entrada.
Syntax :public void closeEntry() throws IOException Throws: ZipException IOException
- protected ZipEntry createZipEntry(String name) : Crea un nuevo objeto ZipEntry para el nombre de entrada especificado.
Syntax :protected ZipEntry createZipEntry(String name) Parameters: name - the ZIP file entry name Returns: the ZipEntry just created
- ZipEntry getNextEntry() : lee la siguiente entrada del archivo ZIP y coloca la secuencia al principio de los datos de entrada.
Syntax :public ZipEntry getNextEntry() throws IOException Returns: the next ZIP file entry, or null if there are no more entries Throws: ZipException IOException
- int read(byte[] b, int off, int len) : Lee desde la entrada ZIP 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.
Syntax :public int read(byte[] b, int off, int len) throws IOException 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 read Returns: the actual number of bytes read, or -1 if the end of the entry is reached Throws: NullPointerException IndexOutOfBoundsException ZipException IOException
- long skip(long n) : Salta el número especificado de bytes en la entrada ZIP actual.
Syntax :public long skip(long n) throws IOException Parameters: n - the number of bytes to skip Returns: the actual number of bytes skipped Throws: ZipException IOException IllegalArgumentException
//Java program demonstrating ZipInputStream 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; import java.util.zip.ZipInputStream; class ZipInputStreamDemo extends ZipInputStream { public ZipInputStreamDemo(InputStream in) { super(in); } public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("Awesome CV.zip"); ZipInputStream zis = new JarInputStream(fis); ZipInputStreamDemo obj = new ZipInputStreamDemo(zis); //illustrating createZipEntry() ZipEntry ze = obj.createZipEntry("ZipEntry"); System.out.println(ze.getName()); //illustrating getNextEntry() ZipEntry je = zis.getNextEntry(); System.out.println(je.getName()); //illustrating skip() method zis.skip(3); //illustrating closeEntry() method zis.closeEntry(); zis.getNextEntry(); byte b[] = new byte[10]; //illustrating available() method //Reads up to byte.length bytes of data from this input stream if(zis.available() == 1) zis.read(b); System.out.println(Arrays.toString(b)); //closing the stream zis.close(); } }
Producción :
ZipEntry awesome-cv.cls [35, 32, 65, 119, 101, 115, 111, 109, 101, 32]
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