java 压缩文件夹

/**
* @param src 要压缩的文件夹目录
* @param des 压缩完保存路径
* @throws IOException
*/
public void zipCompress(String src, String des) throws IOException {
ZipOutputStream out = null;
try {
CheckedOutputStream cusm = new CheckedOutputStream(
new FileOutputStream(des), new Adler32());
out = new ZipOutputStream(new BufferedOutputStream(cusm));
fileZip(new File(src), out, “”);
} finally {
if (out != null) {
out.close();
}
}
}

/**
 * @param file 要压缩的文件夹目录
 * @param out
 * @param base 重定义文件名
 * @throws IOException
 */
private static void fileZip(File file, ZipOutputStream out, String base)
        throws IOException {
    if (file.isFile()) {
        if (base.length() > 0) {
            out.putNextEntry(new ZipEntry(base));
        } else {
            out.putNextEntry(new ZipEntry(file.getName()));
        }

        BufferedReader in = new BufferedReader(new InputStreamReader(
                new FileInputStream(file), "ISO8859_1"));

        int c;
        while ((c = in.read()) != -1) {
            out.write(c);
        }
        in.close();

    } else if (file.isDirectory()) {
        File[] subFiles = file.listFiles();
        if (null != base && !base.equals(""))
            out.putNextEntry(new ZipEntry(base + File.separator));
        base = base.length() != 0 ? base + File.separator : "";

        for (File subFile : subFiles) {
            fileZip(subFile, out, base + subFile.getName());
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值