在前面的示例中,我们学习了如何以GZIP格式压缩文件。为了使文件恢复到原始版本,我们现在将学习如何解压缩gzip文件。就像前面的示例一样,我们还将使用FileInputStreamandFileOutputStream类读取压缩的源文件并写出解压缩的文件。虽然GZipOutputStream用于创建gzip文件,但它GZipInputStream是处理解压缩的类。
这是您的代码段:
package org.nhooo.example.zip; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; public class GZipDecompressExample { public static void main(String[] args) { // GZip输入和输出文件。 String sourceFile = "output.gz"; String targetFile = "data-1.txt"; try ( // 创建文件输入流以读取源文件。 FileInputStream fis = new FileInputStream(sourceFile); // 创建一个gzip输入流以解压缩源 // 由文件输入流定义的文件。 GZIPInputStream gzis = new GZIPInputStream(fis); // 创建文件输出流,其中解压缩结果 // 将被存储。 FileOutputStream fos = new FileOutputStream(targetFile)) { // 创建一个缓冲区和临时变量 // 文件解压缩过程。 byte[] buffer = new byte[1024]; int length; // 从压缩的源文件中读取并写入 // 解压缩文件。 while ((length = gzis.read(buffer)) > 0) { fos.write(buffer, 0, length); } } catch (IOException e) { e.printStackTrace(); } } }