Esempio di metodo java.util.zip.GZIPOutputStream.finish ()
Descrizione
Il java.util.zip.GZIPOutputStream.finish()metodo termina la scrittura di dati compressi nel flusso di output senza chiudere il flusso sottostante. Utilizzare questo metodo quando si applicano più filtri in successione allo stesso flusso di output.
Dichiarazione
Di seguito è riportata la dichiarazione per java.util.zip.GZIPOutputStream.finish() metodo.
public void finish()
throws IOException
Eccezioni
IOException - se si è verificato un errore di I / O.
Esempio
L'esempio seguente mostra l'utilizzo del metodo java.util.zip.GZIPOutputStream.finish ().
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);
outputStream.finish();
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());
}
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
Original Message length : 300
UnCompressed Message length : 300
Stampa