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);
    }
}
时间: 2024-11-13 06:38:00

JAVA-ZIP和GZIP压缩实现的相关文章

Java实现文件压缩与解压[zip格式,gzip格式]

Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还收录了一些能读写压缩格式流的类.要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了.这些类不是Reader和Writer,而是Inpu

java-a实现压缩与解压缩(zip、gzip)

zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还收录了一些能读写压缩格式流的类.要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了.这些类不是Reader和Writer,而是InputStream和OutStreamput的子类.这是因为压缩算法是针对byte而不是字符的. 需要注意的是:java自带的工具类在windows压缩处理编码无

170814、Java使用gzip压缩文件、还原文件

package com.rick.utils; import java.io.*; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; /******************************************************** *@Desc: gizp工具类 *@Author: ZRP *@Date: 2017/11/9 9:31 ********************

java GZIP压缩与解压缩

1.GZIP压缩 public static byte[] compress(String str, String encoding) { if (str == null || str.length() == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutputStream(); GZIPOutputStream gzip; try { gzip = new GZIPOutputStream(out); gzip.

Java Web 减少网络 IO、静态资源磁盘 IO 有效的办法--响应使用 GZIP( 压缩http请求与响应gzip压缩)

(转载http://blog.csdn.net/hylclxy/article/details/7779662) 出于节约流量考虑, 客户端在向服务端发送request的时候对post数据进行gzip压缩, 同时服务端把返回的数据也进行gzip压缩. 为防止遗忘, 记录在此.   编写工具类GzipUtil.java, 开始没考虑好, 方法实现得较乱: public static String METHOD_POST = "POST"; public static final Stri

java zip压缩和解压(支持中文)

package com.xeon.mis.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Enumeration; impor

Java ZIP压缩文件使用总结

做Java Web开发,有时候遇到将多个文件或者文件夹压缩成一个.zip文件,供前端下载.Java的JDK中提供一个java.util.zip的接口,供大家使用.如下图: 图上就是Java 的JDK提供的接口,但是压缩文件或者文件夹的时候,怎么使用上面的接口呢?下面我给出几个相关的接口,这些接口是下面压缩文件或者文件夹过程中使用到的. java.util.zip.ZipEntry; java.util.zip.ZipOutputStream; 下面的压缩过程主要是通过这两个接口压缩文件或者文件夹

iOS与服务器端 GZip压缩问题

昨天搞了一天的GZip压缩,试了三种方式(libz库,ZipArchive,ASIHttpRequest),一开始都不成功.理论上三个应该都能用的,但我都不行.等我试到第三种方式的时候才知道,不是我的问题,而是后台的问题(Java端输出方式一会再说).今天就总结一下,写写iOS与Java服务器获取压缩数据的方法吧.一.客户端-服务端数据压缩解压流程(ASIHttpRequest)客户端生成request,设置header允许使用压缩("Accept-Encoding","gz

loadrunner 发送gzip压缩json格式(转)

转:http://blog.csdn.net/gzh0222/article/details/7711281 使用java vuser实现,发送gzip压缩json格式. /* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import java.io.*; import java.io.BufferedReader; import java.io.B

GZIP压缩优化

使用gzip优化web应用(filter实现) 相关知识: gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户端加载后渲染呈现,这种情况文件一般都比较大,如果开启Gzip ,那么服务器端响应后,会将页面,JS,CSS等文本文件或者其他文件通过高压缩算法将其压缩,然后传输到客户端,由客户端的浏览器负责解压缩与呈现.通常能节省40%以上的流量(一般都有60%左右),一些PHP,JSP文件也能够进行压缩. 实