Java zip压缩,生成压缩包

package server;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class Zipuu {
    public String zip;
    public Map<String, String> map = new LinkedHashMap();
    public ZipOutputStream out = null;

    public static void main(String[] args) throws Exception {
        Zipuu zipuu = Zipuu.build("C:/temp/xxxx.zip");

        // 先添加, 最后一起写入
        zipuu.add("catalina.log", "C:/temp/catalina.log");
        zipuu.add("xxxx/headimg.jpg", "C:/temp/xxxx/headimg.jpg");
        zipuu.add("xxxx/info.json", "C:/temp/xxxx/info.json");
        zipuu.add("xxxx/video.mp4", "C:/temp/xxxx/video.mp4");
        zipuu.write();

        // 边添加边写入
//        zipuu.addwrite("catalina.log", "C:/temp/catalina.log");
//        zipuu.addwrite("xxxx/headimg.jpg", "C:/temp/xxxx/headimg.jpg");
//        zipuu.addwrite("xxxx/info.json", "C:/temp/xxxx/info.json");
//        zipuu.addwrite("xxxx/video.mp4", "C:/temp/xxxx/video.mp4");
//        zipuu.out.close();
    }

    public static Zipuu build(String zip) throws FileNotFoundException {
        Zipuu zipuu = new Zipuu();
        zipuu.zip = zip;
        return zipuu;
    }

    public static Zipuu build() throws FileNotFoundException {
        Zipuu zipuu = new Zipuu();
        return zipuu;
    }

    public void add(String zippath, String path) throws Exception {
        System.out.println("add " + zippath + "   " + path);
        map.put(zippath, path);
    }

    public void addwrite(String zippath, String path) throws Exception {
        System.out.println("addwrite " + zippath + "   " + path);
        if (out == null)
            out = new ZipOutputStream(new FileOutputStream(zip));
        map.put(zippath, path);
        out.putNextEntry(new ZipEntry(zippath));
        FileInputStream fos = new FileInputStream(path);
        int tag;
        // 将源文件写入到zip文件中
        while ((tag = fos.read()) != -1) {
            out.write(tag);
        }
        fos.close();
    }

    public void write() throws Exception {
        if (out == null)
            out = new ZipOutputStream(new FileOutputStream(zip));
        Iterator<String> irt = map.keySet().iterator();
        while (irt.hasNext()) {
            String zippath = irt.next();
            String path = map.get(zippath);
            System.out.println("write " + zippath + "   " + path);
            out.putNextEntry(new ZipEntry(zippath));
            FileInputStream fos = new FileInputStream(path);
            int tag;
            // 将源文件写入到zip文件中
            while ((tag = fos.read()) != -1) {
                out.write(tag);
            }
            fos.close();
        }
        out.close();
        System.out.println("完成");
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值