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

La description

le java.util.zip.Inflater.needsInput()La méthode renvoie true s'il ne reste aucune donnée dans le tampon d'entrée. Cela peut être utilisé pour déterminer si #setInput doit être appelé afin de fournir plus d'entrée.

Déclaration

Voici la déclaration pour java.util.zip.Inflater.needsInput() méthode.

public boolean needsInput()

Retour

true si aucune donnée ne reste dans le tampon d'entrée.

Exemple

L'exemple suivant montre l'utilisation de la méthode java.util.zip.Inflater.needsInput ().

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