Exemple de méthode java.util.zip.DeflaterOutputStream.write ()

La description

le java.util.zip.DeflaterOutputStream.write(byte[] b, int off, int len)La méthode écrit un tableau d'octets dans le flux de sortie compressé. Cette méthode bloquera jusqu'à ce que tous les octets soient écrits.

Déclaration

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

public void write(byte[] b, int off, int len)
 throws IOException

Paramètres

  • b - les données à écrire.

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

  • len - la longueur des données.

Exceptions

  • IOException - si une erreur d'E / S s'est produite.

Exemple

L'exemple suivant montre l'utilisation de la méthode java.util.zip.DeflaterOutputStream.write (byte [] b, int off, int len).

La description

le java.util.zip.DeflaterOutputStream.write(int b)La méthode écrit un octet dans le flux de sortie compressé. Cette méthode bloquera jusqu'à ce que l'octet puisse être écrit.

Déclaration

Voici la déclaration pour java.util.zip.DeflaterOutputStream.write(int b) méthode.

public void write(int b)
 throws IOException

Paramètres

  • b - l'octet à écrire.

Exceptions

  • IOException - si une erreur d'E / S s'est produite.

Exemple

L'exemple suivant montre l'utilisation de la méthode java.util.zip.DeflaterOutputStream.write (int b).

package com.tutorialspoint;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import java.util.zip.Adler32;
import java.util.zip.CheckedInputStream;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.DeflaterInputStream;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.Inflater;
import java.util.zip.InflaterInputStream;

public class DeflaterOutputStreamDemo {

   public static void main(String[] args) throws DataFormatException, IOException {
      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
      ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
      DeflaterOutputStream outputStream = new DeflaterOutputStream(arrayOutputStream);
      for(byte b: input){
         outputStream.write(b);
      }
      outputStream.close();

      //Read and decompress the data
      byte[] readBuffer = new byte[5000];
      ByteArrayInputStream arrayInputStream = 
         new ByteArrayInputStream(arrayOutputStream.toByteArray());
      InflaterInputStream inputStream = new InflaterInputStream(arrayInputStream);
      int read = inputStream.read(readBuffer);

      //Should hold the original (reconstructed) data
      byte[] result = Arrays.copyOf(readBuffer, read);

      // Decode the bytes into a String
      message = new String(result, "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
UnCompressed Message length : 300