The gzip format is the de facto standard compression format in the UNIX and Linux worlds. In a previous Dev Shed article titled Zip Meets Java, Kulvir demonstrated how to use the java.util.zip package to programmatically manipulate files in the ZIP format. In this article, we’ll cover how to use the java.util.zip package to create and read files using the gzip format.
Unlike ZIP utilities, the gzip utility does not archive multiple files into one file. On the contrary, gzip compresses one file into one gzip file. In order to compress multiple files, one must first use another utility called TAR. TAR uses an archival algorithm to join multiple files into one file.
Compressing a file that is already compressed doesn’t do much. For example, GIF is a compressed image format, so when you ZIP or gzip a GIF file, the resulting file will usually be pretty similar in size to the original GIF file. However, if you TAR a number of GIF files into a single file and then gzip the TAR file, a significant size saving can be achieved. This is because there may be common strings found across the joined files that gzip can compress, thus further reducing the total size of the already compressed GIF files.
It is also important to note that GZIP does not support encryption whereas ZIP does. The makers of GZIP find the encryption provided by ZIP to be “weak.” They also suggest using PGP if the user desires strong encryption as well as compression. In fact, PGP incorporates the gzip compression code. See our references section for a link to the PGP Website.