Clase Java.util.zip.ZipInputStream en Java

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *