GZIPOutputStream Class in Java
The java.util.zip package provides classes to compress and decompress the file contents. FileInputStream, FileOutputStream, and GZIPOutputStream classes are provided in Java to compress and decompress the files. The GZIPOutputStream class is useful for writing compressed data in GZIP file format. However, GZIP is not a zip tool, it only use to compress a file into a “.gz” format, not compress several files into a single archive.
The constructors and the corresponding action performed is as follows:
- GZIPOutputStream(OutputStream out): Creates a new output stream with a default buffer size
- GZIPOutputStream(OutputStream out, boolean syncFlush): Creates a new output stream with a default buffer size and the specified flush mode.
- GZIPOutputStream(OutputStream out, int size): Creates a new output stream with the specified buffer size
- GZIPOutputStream(OutputStream out, int size, boolean syncFlush): Creates a new output stream with the specified buffer size and flush mode
Let us discuss the important methods involved, which are as follows:
- void write(byte buf, int off, int len): Writes an array of bytes to the compressed output stream.
Parameters: It takes 3 parameters, namely as follows:
- buf: Data to be written
- off: Start offset of the data
- len: Length of the data
Exception: IOException: If an I/O error has occurred
Note: finish() method finishes writing compressed data to the output stream without closing the underlying stream.
Implementation: We have a text file in D:/Myfolder/New.txt, and ” Hello World ” is written in this text file. We are compressing this text file (New.txt) and generating the GZip file in the same folder. It is also pictorially depicted below as follows:
File successfully compressed
After running the above program, it will compress the file generated that can be depicted from snapshot below by comparing it with the above sampling snapshot.