Clase Java.util.zip.InflaterOutputStream en Java

Esta clase implementa un filtro de flujo de salida para descomprimir datos almacenados en el formato de compresión «desinflado».
Constructores

  • InflaterOutputStream(OutputStream out): crea un nuevo flujo de salida con un descompresor y un tamaño de búfer predeterminados.
  • InflaterOutputStream(OutputStream out, Inflater infl) : crea un nuevo flujo de salida con el descompresor especificado y un tamaño de búfer predeterminado.
  • InflaterOutputStream(OutputStream out, Inflater infl, int bufLen) : crea un nuevo flujo de salida con el descompresor y el tamaño de búfer especificados.

Métodos:

  • void close() : escribe los datos restantes sin comprimir en el flujo de salida y cierra el flujo de salida subyacente.
    Syntax :
    public void close()
               throws IOException
    Overrides:
    close in class FilterOutputStream
    Throws:
    IOException
  • void finish() : Termina de escribir datos sin comprimir en el flujo de salida sin cerrar el flujo subyacente.
    Syntax :public void finish()
                throws IOException
    Throws:
    IOException
  • void flush() : vacía este flujo de salida, lo que obliga a que se escriban los bytes de salida almacenados en búfer pendientes.
    Syntax :public void flush()
               throws IOException
    Overrides:
    flush in class FilterOutputStream
    Throws:
    IOException
  • void write(byte[] b, int off, int len) : escribe una array de bytes en el flujo de salida sin comprimir.
    Syntax :public void write(byte[] b,
             int off,
             int len)
               throws IOException
    Overrides:
    write in class FilterOutputStream
    Parameters:
    b - buffer containing compressed data to decompress and write to the output stream
    off - starting offset of the compressed data within b
    len - number of bytes to decompress from b
    Throws:
    IndexOutOfBoundsException 
    IOException
    NullPointerException 
    ZipException
  • void write(int b) : Escribe un byte en el flujo de salida sin comprimir.
    Syntax :public void write(int b)
               throws IOException
    Parameters:
    b - a single byte of compressed data to decompress and write to the output stream
    Throws:
    IOException
    ZipException 
    

Programa 1

//Java program to illustrate InflaterInputStream class
import java.io.*;
import java.util.Arrays;
import java.util.zip.DeflaterInputStream;
import java.util.zip.InflaterOutputStream;
  
class InflaterOutputStreamDemo 
{
    public static void main(String[] args) throws IOException 
    {
        byte b[] = {1, 2, 3, 4, 5, 6};
        ByteArrayInputStream bin = new ByteArrayInputStream(b);
        DeflaterInputStream din = new DeflaterInputStream(bin);
        byte c[] = new byte[10];
        din.read(c);
        din.close();
  
  
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        InflaterOutputStream ios = new InflaterOutputStream(bos);
        //illustrating write(byte b[],int off,int len)
        ios.write(c);
  
        //flushing
        ios.flush();
          
        //Finishes writing uncompressed data to the output stream
        // without closing the underlying stream.
        ios.finish();
        System.out.println(Arrays.toString(bos.toByteArray()));
        bos.close();
          
        //illustrating close()
        ios.close();
    }
}

Producción :

[1, 2, 3, 4, 5, 6]

Programa 2:

//Java program to illustrate InflaterInputStream class
import java.io.*;
import java.util.Arrays;
import java.util.zip.DeflaterInputStream;
import java.util.zip.InflaterOutputStream;
  
class InflaterOutputStreamDemo 
{
    public static void main(String[] args) throws IOException 
    {
        byte b[] = {1, 2, 3, 4, 5, 6};
        ByteArrayInputStream bin = new ByteArrayInputStream(b);
        DeflaterInputStream din = new DeflaterInputStream(bin);
        FileOutputStream fos=new FileOutputStream("file.txt");
        byte c[] = new byte[10];
        din.read(c);
        fos.write(c);
        din.close();
        fos.close();
  
        //reading the compressed data
        FileInputStream fis = new FileInputStream("file.txt");
  
        ByteArrayOutputStream bos1=new ByteArrayOutputStream();
        InflaterOutputStream ios = new InflaterOutputStream(bos1);
        int ch;
          
        //illustrating write() method
        while ( (ch=fis.read() ) != -1) 
        {
            ios.write(ch);
        }
        System.out.print(Arrays.toString(bos1.toByteArray()));
    }
  
}

Producción :

[1, 2, 3, 4, 5, 6]

Artículo siguiente: Clase Java.util.zip.InflaterInputStream 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 *