Exemple de méthode java.util.zip.Deflater.deflate ()

La description

le java.util.zip.Deflater.deflate(byte[] b, int off, int len)La méthode compresse les données d'entrée et remplit le tampon spécifié avec des données compressées. Renvoie le nombre réel d'octets de données compressées. Une valeur de retour de 0 indique que needsInput doit être appelé afin de déterminer si davantage de données d'entrée sont nécessaires.

Déclaration

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

public int deflate(byte[] b, int off, int len)

Paramètres

  • b - le tampon des données compressées.

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

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

Retour

Le nombre réel d'octets de données compressées écrites dans le tampon de sortie.

Exemple

L'exemple suivant montre l'utilisation de la méthode java.util.zip.Deflater.deflate (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 DeflaterDemo {
   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);
      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