Java如何压缩Gzip格式的文件?
在此代码示例中,我们将学习如何使用gzip压缩来压缩文件。从本质上讲,gzip只能压缩一个文件,不能将其用于压缩目录以及该目录中的所有文件。
您将用于以gzip格式压缩文件的类包括GZipOutputStream,FileInputStream和FileOutputStream类。压缩文件的步骤在下面的代码段注释中进行了描述。
package org.nhooo.example.zip; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.GZIPOutputStream; public class GZipCompressExample { public static void main(String[] args) { //GZip输入和输出文件。 String sourceFile = "data.txt"; String targetFile = "output.gz"; try ( //创建要输入的文件的文件输入流 //压缩。 FileInputStream fis = new FileInputStream(sourceFile); //创建文件输出流,将gzip结果写入 //指定的文件名。 FileOutputStream fos = new FileOutputStream(targetFile); //使用文件输出流创建gzip输出流对象 //作为论点。 GZIPOutputStream gzos = new GZIPOutputStream(fos)) { //定义用于迭代文件的缓冲区和临时变量 //输入流。 byte[] buffer = new byte[1024]; int length; //读取并输入文件输入流的所有内容 //到gzip输出流对象。 while ((length = fis.read(buffer)) > 0) { gzos.write(buffer, 0, length); } //完成文件压缩并关闭所有流。 gzos.finish(); } catch (IOException e) { e.printStackTrace(); } } }