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

La description

le java.util.zip.Inflater.setInput(byte[] b, int off, int len)La méthode définit les données d'entrée pour la décompression. Doit être appelé chaque fois que needsInput () renvoie true, indiquant que plus de données d'entrée sont nécessaires.

Déclaration

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

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

Paramètres

  • b - les octets de données d'entrée.

  • off - il démarre le décalage des données.

  • len - la longueur des données.

Exemple

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

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