JAVA-ZIP和GZIP压缩实现

Posted 广亮的忙里偷闲半日博

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA-ZIP和GZIP压缩实现相关的知识,希望对你有一定的参考价值。

1、ZIP压缩实现:

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
 * @description ZIP格式压缩文件
 * @author guo
 *
 */
public class ZipUtils {
    
    public static void main(String[] args) {
        try {
            zipFile("D:\\4.json", "D:\\test\\4zip.zip");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * ZIP方式 对文件进行压缩
     * 
     * @param source 源文件
     * @param target 目标文件
     * @throws IOException
     */
    public static void zipFile(String source, String target)
            throws IOException {
        long start = System.currentTimeMillis();
        FileInputStream fin = null;
        FileOutputStream fout = null;
        fin = new FileInputStream(source);
        fout = new FileOutputStream(target);
        ZipOutputStream zipOut = new ZipOutputStream(fout);
        zipOut.setLevel(9);
        ZipEntry entry = new ZipEntry("11111");
        zipOut.putNextEntry(entry);
        byte[] buf = new byte[1024];
        try {
            int num;
            while ((num = fin.read(buf)) != -1) {
                zipOut.write(buf, 0, num);
            }
        } finally {
            if (zipOut != null)
                zipOut.close();
            if (fout != null)
                fout.close();
            if (fin != null)
                fin.close();
        }
        System.out.println(System.currentTimeMillis() - start);
    }
}

2、GZIP压缩实现

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

/**
 * @description GZIP格式压缩文件
 * @author guo
 */
public class GZipUtils {
    public static void main(String[] args) throws IOException {
        zipFile("D:\\4.json", "D:\\test\\4.zip");
    }
    /**
     * GZIP方式 对文件进行压缩
     * 
     * @param source 源文件
     * @param target 目标文件
     * @throws IOException
     */
    public static void zipFile(String source, String target) throws IOException {
        long start = System.currentTimeMillis();
        FileInputStream fin = null;
        FileOutputStream fout = null;
        GZIPOutputStream gzout = null;
        try {
            fin = new FileInputStream(source);
            fout = new FileOutputStream(target);
            gzout = new GZIPOutputStream(fout);
            byte[] buf = new byte[1024];
            int num;
            while ((num = fin.read(buf)) != -1) {
                gzout.write(buf, 0, num);
            }
        } finally {
            if (gzout != null)
                gzout.close();
            if (fout != null)
                fout.close();
            if (fin != null)
                fin.close();
        }
        System.out.println(System.currentTimeMillis() - start);
    }
}

 

以上是关于JAVA-ZIP和GZIP压缩实现的主要内容,如果未能解决你的问题,请参考以下文章

基于Filter实现Gzip数据压缩

Java利用Gzip对字符串进行压缩与解压

C#实现通过Gzip来对数据进行压缩和解压

这都2021年了,还不会Feign性能调优?Feign性能调优之gzip压缩实现-自娱自乐篇

spring通过GZIP压缩提高网络传输效率(可以实现任何资源的gzip压缩包括AJAX)

前端代码gzip压缩