java zip工具类解析

你猜 阅读:239 2021-03-31 21:44:06 评论:0
package com.shop.ssm.util; 
 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.util.zip.ZipEntry; 
import java.util.zip.ZipOutputStream; 
 
/**java压缩成zip 
 * @author 周志刚 
 * 创建时间:2016年9月1日 
 */ 
public class FileZip { 
 
    /** 
     * @param inputFileName 你要压缩的文件夹(整个完整路径) 
     * @param zipFileName 压缩后的文件(整个完整路径) 
     * @throws Exception 
     */ 
    public static Boolean zip(String inputFileName, String zipFileName) throws Exception { 
        zip(zipFileName, new File(inputFileName)); 
        return true; 
    } 
 
    private static void zip(String zipFileName, File inputFile) throws Exception { 
        ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName)); 
        zip(out, inputFile, ""); 
        //out.flush(); 
        out.close(); 
    } 
 
    private static void zip(ZipOutputStream out, File f, String base) throws Exception { 
        if (f.isDirectory()) { 
            File[] fl = f.listFiles(); 
            out.putNextEntry(new ZipEntry(base + "/")); 
            base = base.length() == 0 ? "" : base + "/"; 
            for (int i = 0; i < fl.length; i++) { 
                zip(out, fl[i], base + fl[i].getName()); 
            } 
        } else { 
            out.putNextEntry(new ZipEntry(base)); 
            FileInputStream in = new FileInputStream(f); 
            int b; 
            //System.out.println(base); 
            while ((b = in.read()) != -1) { 
                out.write(b); 
            } 
            in.close(); 
        } 
    } 
 
    public static void main(String [] temp){ 
        try { 
            zip("E:\\ftl","E:\\test.zip");//你要压缩的文件夹      和  压缩后的文件 
        }catch (Exception ex) { 
            ex.printStackTrace(); 
        } 
    } 
}

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
KIKK导航

KIKK导航

关注我们