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

La description

le java.util.zip.GZIPOutputStream.write(byte[] buf, 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.GZIPOutputStream.write(byte[] buf, int off, int len) méthode.

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

Paramètres

  • buf - 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.GZIPOutputStream.write (byte [] buf, int off, int len).

package com.tutorialspoint;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.zip.DataFormatException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class GZIPOutputStreamDemo {

   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;";
    
      System.out.println("Original Message length : " + message.length());
      byte[] input = message.getBytes("UTF-8");

      // Compress the bytes
      ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
      GZIPOutputStream outputStream = new GZIPOutputStream(arrayOutputStream);
      outputStream.write(input,0, input.length);
      outputStream.close();

      //Read and decompress the data
      byte[] readBuffer = new byte[5000];
      ByteArrayInputStream arrayInputStream = 
         new ByteArrayInputStream(arrayOutputStream.toByteArray());
      GZIPInputStream inputStream = new GZIPInputStream(arrayInputStream);
      int read = inputStream.read(readBuffer,0,readBuffer.length);
      inputStream.close();
      //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
Impression