Clase Java.util.zip.InflaterInputStream en Java

Esta clase implementa un filtro de flujo para descomprimir datos en el formato de compresión «desinflado». También se utiliza como base para otros filtros de descompresión, como GZIPInputStream.
Constructores

  • InflaterInputStream(InputStream in): crea un nuevo flujo de entrada con un descompresor predeterminado y un tamaño de búfer.
  • InflaterInputStream(InputStream in, Inflater inf) : crea un nuevo flujo de entrada con el descompresor especificado y un tamaño de búfer predeterminado.
  • InflaterInputStream(InputStream in, Inflater inf, int size) : crea un nuevo flujo de entrada con el descompresor y el tamaño de búfer especificados.

Métodos:

  • int available() : Devuelve 0 después de alcanzar el EOF; de lo contrario, siempre devuelve 1.
    Syntax : public int available()
                  throws IOException
    Returns:
    1 before EOF and 0 after EOF.
    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
    Throws:
    IOException 
    
  • protected void fill() : Llena el búfer de entrada con más datos para descomprimir.
    Syntax : protected void fill()
                 throws IOException
    Throws:
    IOException
    
  • void mark(int readlimit) : Marca la posición actual en este flujo de entrada.
    Syntax : public void mark(int readlimit)
    Parameters:
    readlimit - the maximum limit of bytes that can be read
    before the mark position becomes invalid.
  • boolean markSupported() : comprueba si este flujo de entrada es compatible con los métodos de marcar y restablecer.
    Syntax : public boolean markSupported()
    Returns:
    a boolean indicating if this stream type supports the mark and reset methods.
    
  • int read() : Lee un byte de datos sin comprimir.
    Syntax : public int read()
             throws IOException
    Returns:
    the byte read, or -1 if end of compressed input is reached
    Throws:
    IOException
  • int read(byte[] b, int off, int len) : Lee datos sin comprimir en una array de bytes.
    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 compressed input is reached.
    Throws:
    NullPointerException 
    IndexOutOfBoundsException 
    ZipException
    IOException
    
  • void reset() : Reposiciona este flujo a la posición en el momento en que se llamó por última vez al método de marca en este flujo de entrada.
    Syntax : public void reset()
               throws IOException
    Throws:
    IOException
    
  • salto largo (n largo): salta el número especificado de bytes de datos sin comprimir.
    Syntax : public long skip(long n)
              throws IOException
    Parameters:
    n - the number of bytes to skip
    Returns:
    the actual number of bytes skipped.
    Throws:
    IOException 
    IllegalArgumentException 

Programa:

//Java program to demonstrate InflaterInputStream
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.InflaterInputStream;
  
  
class InflaterInputStreamDemo
{
    public static void main(String[] args) throws IOException
    {
  
        FileOutputStream fos = new FileOutputStream("file.txt");
  
        //Assign FileOutputStream to DeflaterOutputStream
        DeflaterOutputStream dos = new DeflaterOutputStream(fos);
  
        //write it into DeflaterOutputStream
        for (int i = 0; i < 10; i++)
        {
            dos.write(i);
        }
        dos.flush();
        dos.close();
        FileInputStream fis = new FileInputStream("file.txt");
        InflaterInputStream iis = new InflaterInputStream(fis);
  
        //illustrating available() method
        System.out.println(iis.available());
  
        //illustrating mark and markSupported()
        if (iis.markSupported())
            iis.mark(15);
        else
            System.out.println(false);
          
        //illustrating skip() method
        iis.skip(3);
  
        //illustrating read()
        for (int i = 0; i <3 ; i++) 
        {
            System.out.print(iis.read());
        }
  
        //illustrating read(byte[] b,int off,int len)
        byte b[]=new byte[4];
          
        for (int i = 0; i <4 ; i++) 
        {
            iis.read(b,0,4);
        }
          
        for (int i = 0; i < 4; i++) 
        {
            System.out.print(b[i]);
        }
    }
}

Producción:

1
false
3456789


Artículo siguiente:
Clase Java.util.zip.InflaterOutputStream en Java

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 *