Java GZIPInputStream教程

时间:2020-01-09 10:36:33  来源:igfitidea点击:

JavaGZIPInputStream类(java.util.zip.GZIPInputStream)可用于解压缩使用GZIP压缩算法压缩的文件,例如通过GZIPOutputStream类。

创建一个GZIPInputStream

要使用Java的GZIPInputStream,必须首先创建一个GZIPInputStream实例。这是创建GZIPInputStream实例的示例:

InputStream     fileInputStream = new FileInputStream("myfile.zip");
GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream);

GZIPInputStream构造函数将InputStream作为参数。在上面的示例中,我通过了一个名为FileInputStream的文件,该文件连接到名为myfile.zip的文件。然后," GZIPInputStream"将读取文件中经过GZIP处理的数据并将其解压缩。

从GZIPInputStream读取数据

创建了" GZIPInputStream"之后,我们可以从中读取解压缩的数据,就像从任何其他" InputStream"中读取数据一样。这是从Java GZIPInputStream读取数据的示例:

int data = gzipInputStream.read();
while(data != -1){
    //do something with data
    data = gzipInputStream.read();
}

关闭GZIPInputStream

从" GZIPInputStream"读取完数据后,应使用" close()"方法将其关闭。这是关闭GZIPInputStream的Java示例:

gzipInputStream.close();

我们还可以使用try-with-resources构造打开GZIPInputStream,因此在使用完GZIPInputStream后会自动将其关闭。看起来是这样的:

try(GZIPInputStream gzipInputStream = new GZIPInputStream(new FileInputStream("myfile.zip"))) {
    int data = gzipInputStream.read();
    while(data != -1){
        //do something with data
        data = gzipInputStream.read();
    }
}