ITPub博客

首页 > Linux操作系统 > Linux操作系统 > java zip压缩

java zip压缩

原创 Linux操作系统 作者:aikangyan 时间:2008-03-06 16:49:15 0 删除 编辑
import java.util.zip.*;
import java.io.*;

public class zipDown {    
    
    /**
     * 压缩文件 公用接口
     * @param zipFileName 保存的压缩包文件路径
     * @param inputFile 需要压缩的文件夹或者文件路径
     * @throws Exception
     */   
    public static void zip(String zipFileName, String inputFile) throws Exception {
       
        //调用方法
        zip(zipFileName, new File(inputFile));
    }
   
    /**
     * 压缩文件实现方法
     * @param zipFileName
     * @param inputFile
     * @throws Exception
     */
    private static void zip(String zipFileName, File inputFile) throws Exception {
       
        ZipOutputStream ut = new ZipOutputStream(new FileOutputStream(zipFileName));
        zip(out, inputFile, "");//递归压缩方法
        System.out.println("zip done");
        out.close();
    }
   
    /**
     * 递归压缩方法
     * @param out   压缩包输出流
     * @param file  需要压缩的文件
     * @param base     压缩的路径
     * @throws Exception
     */
    private static void zip(ZipOutputStream out, File file, String base) throws Exception {
       
        System.out.println("Zipping   " + file.getName()); //记录日志,开始压缩
        if (file.isDirectory()) {   // 如果是文件夹,则获取下面的所有文件
            File[] fl = file.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(file);   // 读取文件内容
            int b;
            while ((b = in.read()) != -1)
                out.write(b);   // 写入到压缩包
            in.close();
        }
    }
}
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12379366/viewspace-200494/,如需转载,请注明出处,否则将追究法律责任。

上一篇: JOptionPane类
请登录后发表评论 登录
全部评论

注册时间:2007-12-12

  • 博文量
    81
  • 访问量
    41909