Exemple de méthode java.util.zip.Inflater.inflate ()

La description

le java.util.zip.Inflater.inflate(byte[] b, int off, int len)La méthode décompresse les octets dans le tampon spécifié. Renvoie le nombre réel d'octets non compressés. Une valeur de retour de 0 indique que needsInput () ou needsDictionary () doit être appelé afin de déterminer si plus de données d'entrée ou un dictionnaire prédéfini sont requis. Dans ce dernier cas, getAdler () peut être utilisé pour obtenir la valeur Adler-32 du dictionnaire requis.

Déclaration

Voici la déclaration pour java.util.zip.Inflater.inflate(byte[] b, int off, int len) méthode.

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

Paramètres

  • b - le tampon pour les données non compressées.

  • off - le décalage de début des données.

  • len - le nombre maximum d'octets de données non compressées.

Retour

Le nombre réel d'octets d'octets non compressés.

Exceptions

  • DataFormatException - si le format de données compressées n'est pas valide.

Exemple

L'exemple suivant montre l'utilisation de la méthode 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());
   }
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

Original Message length : 300
Compressed Message length : 42
UnCompressed Message length : 300
Impression