程序员社区

Java IO教程 --- Java GZIP 示例 – 压缩和解压缩文件

欢迎使用 Java GZIP 示例。GZIP 是 Unix 系统中最受欢迎的压缩文件的工具之一。我们可以以 GZIP 格式压缩单个文件,但我们不能像 ZIP 文件一样使用 GZIP 压缩和存档目录。

压缩包

这是一个简单的 java GZIP 示例程序,展示了如何将文件压缩为 GZIP 格式,然后解压缩 GZIP 文件以创建新文件。

GZIPExample.java

package com.journaldev.files;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class GZIPExample {

    public static void main(String[] args) {
        String file = "/Users/pankaj/sitemap.xml";
        String gzipFile = "/Users/pankaj/sitemap.xml.gz";
        String newFile = "/Users/pankaj/new_sitemap.xml";

        compressGzipFile(file, gzipFile);

        decompressGzipFile(gzipFile, newFile);

    }

    private static void decompressGzipFile(String gzipFile, String newFile) {
        try {
            FileInputStream fis = new FileInputStream(gzipFile);
            GZIPInputStream gis = new GZIPInputStream(fis);
            FileOutputStream fos = new FileOutputStream(newFile);
            byte[] buffer = new byte[1024];
            int len;
            while((len = gis.read(buffer)) != -1){
                fos.write(buffer, 0, len);
            }
            //close resources
            fos.close();
            gis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private static void compressGzipFile(String file, String gzipFile) {
        try {
            FileInputStream fis = new FileInputStream(file);
            FileOutputStream fos = new FileOutputStream(gzipFile);
            GZIPOutputStream gzipOS = new GZIPOutputStream(fos);
            byte[] buffer = new byte[1024];
            int len;
            while((len=fis.read(buffer)) != -1){
                gzipOS.write(buffer, 0, len);
            }
            //close resources
            gzipOS.close();
            fos.close();
            fis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

在解压 GZIP 文件时,如果它不是 GZIP 格式,则会抛出以下异常。

java.util.zip.ZipException: Not in GZIP format
    at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:164)
    at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:78)
    at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:90)
    at com.journaldev.files.GZIPExample.decompressGzipFile(GZIPExample.java:25)
    at com.journaldev.files.GZIPExample.main(GZIPExample.java:18)

这就是 Java GZIP 示例的全部内容。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Java IO教程 --- Java GZIP 示例 – 压缩和解压缩文件

一个分享Java & Python知识的社区

登录

注册