Java实现gz压缩与解压缩

简介: Java实现gz压缩与解压缩

压缩

/**
 * 将指定文件GZ压缩,并删除原文件。
 */
public static void gzip(String fileName) throws Exception {
    String outFileName = fileName + ".gz";
    GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(outFileName));
    FileInputStream in = new FileInputStream(fileName);
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    in.close();
    out.finish();
    out.close();
    new File(fileName).delete();
}

解压缩

/**
 * 将指定GZ文件解压缩,并删除原文件。
 */
public static void gunzip(String gzFileName) throws Exception {
    String outFileName = gzFileName.substring(0, gzFileName.length() - 3);
    // 文本文件输出流
    FileOutputStream fileOutput = new FileOutputStream(outFileName);
    GZIPInputStream gzFileInput = new GZIPInputStream(new FileInputStream(gzFileName));
    byte[] buf = new byte[1024];
    int len;
    while ((len = gzFileInput.read(buf)) > 0) {
        fileOutput.write(buf, 0, len);
    }
    gzFileInput.close();
    fileOutput.close();
    new File(gzFileName).delete();
}

调用示例

public static void main(String[] args) {
    String filename = "/xxx/xxx/xxx.txt";
    try {
        // gzip压缩文件
        GzipUtils.gzip(filename);
        
        // gunzip解压文件
        GzipUtils.gunzip(filename + ".gz");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
相关文章
|
2月前
|
存储 Java 文件存储
如何用 Java 压缩 ZIP 文件?
【2月更文挑战第21天】
37 1
|
4月前
|
存储 算法 Java
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
从零开始学习 Java:简单易懂的入门指南之IO序列化、打印流、压缩流(三十三)
|
6月前
|
Java
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
java 读取文件 获取byte[]字节 并执行Gzip的压缩和解压
51 0
|
6月前
|
Java
Java实现多文件打包成压缩包下载
Java实现多文件打包成压缩包下载
183 0
|
27天前
|
Java 大数据 测试技术
Java对象头压缩---- 永久为Java应用“降本增效”
本文介绍了一下OpenJDK的最新技术,对象头压缩,来大幅优化Java对象的内存占用。
|
6月前
|
存储 算法 NoSQL
Zstandard (zstd)压缩算法在JAVA上的使用
Zstandard (zstd)压缩算法在JAVA上的使用
291 0
|
5月前
|
Java API Apache
Java之打印流,压缩流,工具包的详细解析
4. 打印流 4.1 概述 平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输出方式。 4.2 PrintStream类
32 0
|
6月前
|
Java
java解压缩zip、rar
java解压缩zip、rar
111 0
|
6月前
|
Java
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
|
6月前
|
存储 Java
[java进阶]——高级IO流家族,序列化流、打印流、压缩流、转换流
[java进阶]——高级IO流家族,序列化流、打印流、压缩流、转换流