Esempio del metodo java.util.zip.Inflater.needsInput ()

Descrizione

Il java.util.zip.Inflater.needsInput()restituisce true se non rimangono dati nel buffer di input. Questo può essere utilizzato per determinare se #setInput deve essere chiamato per fornire più input.

Dichiarazione

Di seguito è riportata la dichiarazione per java.util.zip.Inflater.needsInput() metodo.

public boolean needsInput()

ritorna

true se non rimangono dati nel buffer di input.

Esempio

Il seguente esempio mostra l'utilizzo del metodo 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());
   }
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

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