Java GZIPInputStream Tutorial
Jakob Jenkov |
The Java GZIPInputStream
class (java.util.zip.GZIPInputStream
) can be used to
decompress files that are compressed with the GZIP compression algorithm, for instance via the
GZIPOutputStream
class.
Creating a GZIPInputStream
To use the Java GZIPInputStream
you must first create a GZIPInputStream
instance. Here is an example of creating a GZIPInputStream
instance:
InputStream fileInputStream = new FileInputStream("myfile.zip"); GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);
The GZIPInputStream
constructor takes an InputStream
as parameter.
In the example above I passed it a FileInputStream
connected to a file named
myfile.zip
. The GZIPInputStream
will then read the GZIP'ed data in the file
and decompress it.
Reading Data From a GZIPInputStream
After creating a GZIPInputStream
you can read the decompressed data from it just like
you would read data from any other InputStream
. Here is an example of reading data
from a Java GZIPInputStream
:
int data = gzipInputStream.read(); while(data != -1){ //do something with data data = gzipInputStream.read(); }
Closing a GZIPInputStream
When you are finished reading data from the GZIPInputStream
you should close it
using its close()
method. Here is a Java example of closing a GZIPInputStream
:
gzipInputStream.close();
You can also open a GZIPInputStream
using the try-with-resources
construct,
so the GZIPInputStream
is closed automatically when you are done using it. Here is how that
looks:
try(GZIPInputStream gzipInputStream = new GZIPInputStream(new FileInputStream("myfile.zip"))) { int data = gzipInputStream.read(); while(data != -1){ //do something with data data = gzipInputStream.read(); } }
Tweet | |
Jakob Jenkov |