*

* Created on 2009-07-15*

*   压缩文件和文件夹类Compressor.java

*/

package zip;

import java.util.*;

import java.util.zip.*;

import java.io.*;

public class ZIPCompressor {

/**

* 压缩文件

* @param zipFileName 保存的压缩包文件路径

* @param inputFile 需要压缩的文件夹或者文件路径

* @throws Exception

*/

public static void zip(String zipFileName, String inputFile) throws Exception {

zip(zipFileName, new File(inputFile));

}

private static void zip(String zipFileName, File inputFile) throws Exception {

ZipOutputStream out = new ZipOutputStream(new FileOutputStream(

zipFileName));

zip(out, inputFile, "");//递归压缩方法

System.out.println("zip done");

out.close();

}

/**

* 递归压缩方法

* @param out   压缩包输出流

* @param f     需要压缩的文件

* @param base 压缩的路径

* @throws Exception

*/

private static void zip(ZipOutputStream out, File f, String base) throws Exception {

System.out.println("Zipping   " + f.getName()); //记录日志,开始压缩

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;

while ((b = in.read()) != -1)

out.write(b);   // 写入到压缩包

in.close();

}

}

public static void main(String [] args){

ZIPCompressor cpr = new ZIPCompressor();

try {

cpr.zip("F://client//update.zip", "F://server");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}}

java zip 压缩文件夹_java zip 实现压缩文件和文件夹类Compressor.java相关推荐

  1. java date加一天_Java日期时间API系列15-----Jdk8中API类,java日期计算2,年月日时分秒的加减等...

    通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, Tempora ...

  2. Java黑皮书课后题第9章:*9.5(使用GregorianCalendar类)Java API中有一个位于包java.util中的类GregorianCalendar

    Java黑皮书课后题第9章:*9.5(使用GregorianCalendar类)Java API中有一个位于包java.util中的类GregorianCalendar 题目 代码 题目 代码 imp ...

  3. java zip 文件夹_Java Zip文件文件夹示例

    java zip 文件夹 Today we will look into java zip file example. We will also compress a folder and creat ...

  4. java命令 jar文件夹_java中jar命令打包一个文件夹下的所有文件

    (1)首先,必须保证java的所有路径都设置好,在dos提示符下输入jar -help 出现C:\Documents and Settings\dly>jar -help 非法选项:h 用法:j ...

  5. java 文件递归删除文件夹_Java十行代码实现递归删除文件夹中所有文件

    递归删除文件夹中所有文件 要递归首先需要有方法.递归,即方法自己调用自己.一般在程序中很少使用,但在这个实现中,我们无法知道文件夹的深度,更无法根据深度来实现循环的嵌套. 递归两个重要条件: 终止边界 ...

  6. java删除文件模糊_Java实现的模糊匹配某文件夹下的文件并删除功能示例

    本文实例讲述了Java实现的模糊匹配某文件夹下的文件并删除功能.分享给大家供大家参考,具体如下: package com.wyebd.gis; import java.io.File; /** * @ ...

  7. java 输入流可以合并吗_Java 使用IO流实现大文件的分割与合并实例详解

    java 使用IO流实现大文件的分割与合并 文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时 ...

  8. java 跨域上传_java后台图片跨域上传图片 文件

    发送方 @ResponseBody @RequestMapping(value="/imgUpLoadNewOneKuaYu")public String imgUpLoadNew ...

  9. java文件下载时文件类型_Java基础之文件下载实现自定义名称和格式类型-java下载文件...

    response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据,可以设置文件格式.参考数据如下: re ...

  10. java 按行读取大文件文件内容_Java实现按行读取大文件

    Java实现按行读取大文件 String file = "F:" + File.separator + "a.txt"; FileInputStream fis ...

最新文章

  1. Android适配难题全面总结
  2. 【STM32】待机唤醒程序示例
  3. linux下实现定时器,在Linux操作系统下实现定时器简介
  4. java同时输出多个数字_java从命令行接收多个数字,求和之后输出结果
  5. 分光计游标盘ab两个游标作用_汽车防撞梁的作用究竟有多大?没有后防撞梁的汽车真的不安全吗?...
  6. 动态网站的技术路线_派康大会官方网站建设项目开通上线啦!
  7. 学习WPF——WPF布局——了解布局容器
  8. [转载] 树莓派并行控制电机_使用由并行端口控制的软盘驱动步进电机的相机摇摄器
  9. Java项目本地部署宝塔搭建实战-医院HIS系统源码
  10. 【原创】我所认识的银行业务之旅(贷款篇)
  11. svchost.exe 占用网络资源
  12. 【算法思路】常见岛屿数量的算法题
  13. 电脑屏幕旋转工具 躺着看才舒服。
  14. 中国象棋的人机博弈程序
  15. Linux U盘分区格式化 fdisk命令
  16. 网站运维如何监控云主机服务
  17. 初识Vulkun(9):图形流水线/管道
  18. 计算机视觉(2)随记
  19. Vondrak滤波及测试(python)
  20. matlab 单相整流电路,单相桥式整流在MATLAB仿真波形图,以及原理分析

热门文章

  1. 我的世界网易版显示dns服务器错误怎么弄,手机显示DNS异常怎么办
  2. JavaWeb:Ajax和JSON
  3. Cesium:向地图中添加面的方法
  4. Javascript特效:简单日历
  5. 表格列隐藏_WPS表格(Excel)基础编辑
  6. 计算机图形学_bresenham画线算法的最简洁实现(已验证)
  7. 一文详解双目视觉目标检测
  8. CVPR 2021|人脸属性风格解耦
  9. linux运维视频教程
  10. 调整数组顺序使奇数位于偶数前面(剑指offer)