Exemplo de método java.util.zip.Inflater.inflate ()

Descrição

o java.util.zip.Inflater.inflate(byte[] b)método descompacta bytes no buffer especificado. Retorna o número real de bytes descompactados. Um valor de retorno de 0 indica que needsInput () ou needsDictionary () deve ser chamado para determinar se mais dados de entrada ou um dicionário predefinido são necessários. No último caso, getAdler () pode ser usado para obter o valor Adler-32 do dicionário necessário.

Declaração

A seguir está a declaração para java.util.zip.Inflater.inflate(byte[] b) método.

public int inflate(byte[] b)
   throws DataFormatException

Parâmetros

  • b - o buffer para os dados não compactados.

Devoluções

o número real de bytes não compactados.

Exceções

  • DataFormatException - se o formato dos dados compactados for inválido.

Exemplo

O exemplo a seguir mostra o uso do método java.util.zip.Inflater.inflate (byte [] b).

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);
      deflater.end();

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

      // Decompress the bytes
      Inflater inflater = new Inflater();
      inflater.setInput(output, 0, compressedDataLength);
      byte[] result = new byte[1024];
      int resultLength = inflater.inflate(result);
      inflater.end();

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

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

Original Message length : 300
Compressed Message length : 42
UnCompressed Message length : 300
Impressão