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

Descrição

o java.util.zip.Inflater.inflate(byte[] b, int off, int len)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, int off, int len) método.

public int inflate(byte[] b, int off, int len)
   throws DataFormatException

Parâmetros

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

  • off - o deslocamento inicial dos dados.

  • len - o número máximo de bytes de dados não compactados.

Devoluções

O número real de bytes 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, 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, compressedDataLength);
      byte[] result = new byte[1024];
      int resultLength = inflater.inflate(result, 0 , result.length);
      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