Ejemplo de método java.util.zip.Inflater.setInput ()

Descripción

los java.util.zip.Inflater.setInput(byte[] b, int off, int len)El método establece los datos de entrada para la descompresión. Se debe llamar siempre que needInput () devuelva verdadero, lo que indica que se requieren más datos de entrada.

Declaración

A continuación se muestra la declaración de java.util.zip.Inflater.setInput(byte[] b, int off, int len) método.

public void setInput(byte[] b, int off, int len)

Parámetros

  • b - los bytes de datos de entrada.

  • off - Comienza la compensación de los datos.

  • len - la longitud de los datos.

Ejemplo

El siguiente ejemplo muestra el uso del método java.util.zip.Inflater.setInput (byte [] b, int off, int len).

package com.tutorialspoint;

import java.io.UnsupportedEncodingException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;

public class InflaterDemo {
   public static void main(String[] args) 
      throws DataFormatException, UnsupportedEncodingException {
      String message = "Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;"
         +"Welcome to TutorialsPoint.com;";
      System.out.println("Original Message length : " + message.length());
      byte[] input = message.getBytes("UTF-8");

      // Compress the bytes
      byte[] output = new byte[1024];
      Deflater deflater = new Deflater();
      deflater.setInput(input);
      deflater.finish();
      int compressedDataLength = deflater.deflate(output,0,output.length);
      deflater.end();

      System.out.println("Compressed Message length : " + compressedDataLength);

      // Decompress the bytes
      Inflater inflater = new Inflater();
      inflater.setInput(output, 0, 10);
      byte[] result = new byte[1024];
      int resultLength = inflater.inflate(result, 0 , 10);
      
      if(inflater.needsInput()){
         inflater.setInput(output, 10, compressedDataLength - resultLength);    
         resultLength += 
            inflater.inflate(result, resultLength , result.length - resultLength);
      }

      inflater.end();

      // Decode the bytes into a String
      message = new String(result, 0, resultLength, "UTF-8");
   
      System.out.println("UnCompressed Message length : " + message.length());
   }
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Original Message length : 300
Compressed Message length : 42
UnCompressed Message length : 300
Impresión