Ejemplo de método java.util.zip.Inflater.needsDictionary ()

Descripción

los java.util.zip.Inflater.needsDictionary() El método devuelve verdadero si se necesita un diccionario preestablecido para la descompresión.

Declaración

A continuación se muestra la declaración de java.util.zip.Inflater.needsDictionary() método.

public boolean needsDictionary()

Devoluciones

Es true si se necesita un diccionario preestablecido para la descompresión.

Ejemplo

El siguiente ejemplo muestra el uso del método java.util.zip.Inflater.needsDictionary ().

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;";
      String dictionary = "Welcome";
 
      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.setDictionary(dictionary.getBytes("UTF-8"));
      deflater.setInput(input);
   
      deflater.finish();
      int compressedDataLength = deflater.deflate(output,0 , output.length, Deflater.NO_FLUSH);
      System.out.println("Total uncompressed bytes output :" + deflater.getTotalOut());
      System.out.println("Compressed Message Checksum :" + deflater.getAdler());     
      deflater.finished();

      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);
      if(inflater.needsDictionary()){
    
         inflater.setDictionary(dictionary.getBytes("UTF-8"));
 
         resultLength = inflater.inflate(result);
      }
      inflater.finished();

      // Decode the bytes into a String
      message = new String(result, 0, resultLength, "UTF-8");
      System.out.println("UnCompressed Message Checksum :" + inflater.getAdler());  
      System.out.println("UnCompressed Message length : " + message.length());
   }
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Original Message length : 300
Total uncompressed bytes output :40
Compressed Message Checksum :368538129
Compressed Message length : 40
UnCompressed Message Checksum :368538129
UnCompressed Message length : 300
Impresión