// 测试
ZipUtil.zipFiles(new File("D:/abc"), new File("a123.zip"));
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;public class ZipUtil {/*** 压缩文件** @param srcfile*/public static void zipFiles(File srcfile, File targetFile) {ZipOutputStream out = null;try {out = new ZipOutputStream(new FileOutputStream(targetFile));if (srcfile.isFile()) {zipFile(srcfile, out, "");} else {File[] list = srcfile.listFiles();for (int i = 0; i < list.length; i++) {compress(list[i], out, "");}}System.out.println("压缩完毕");} catch (Exception e) {e.printStackTrace();} finally {try {if (out != null)out.close();} catch (IOException e) {e.printStackTrace();}}}/*** 压缩文件夹里的文件* 起初不知道是文件还是文件夹--- 统一调用该方法** @param file* @param out* @param basedir*/private static void compress(File file, ZipOutputStream out, String basedir) {/* 判断是目录还是文件 */if (file.isDirectory()) {zipDirectory(file, out, basedir);} else {zipFile(file, out, basedir);}}/*** 压缩单个文件** @param srcfile*/public static void zipFile(File srcfile, ZipOutputStream out, String basedir) {if (!srcfile.exists())return;byte[] buf = new byte[1024];FileInputStream in = null;try {int len;in = new FileInputStream(srcfile);out.putNextEntry(new ZipEntry(basedir + srcfile.getName()));while ((len = in.read(buf)) > 0) {out.write(buf, 0, len);}} catch (Exception e) {e.printStackTrace();} finally {try {if (out != null)out.closeEntry();if (in != null)in.close();} catch (IOException e) {e.printStackTrace();}}}/*** 压缩文件夹** @param dir* @param out* @param basedir*/public static void zipDirectory(File dir, ZipOutputStream out, String basedir) {if (!dir.exists())return;File[] files = dir.listFiles();for (int i = 0; i < files.length; i++) {/* 递归 */compress(files[i], out, basedir + dir.getName() + "/");}}
}

Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩相关推荐

  1. Java建立Zip压缩文件的代码实例

    Java建立Zip压缩文件的代码实例 Java代码 import java.io.*; import java.util.zip.*; class Zip { public static void m ...

  2. EasyPoi读取word时报错java.util.zip.ZipException: Unexpected record signature: 0X9

    场景:把word模板放入类路径目录下,程序读取word模板,填充数据,导出. 现象:报错java.util.zip.ZipException: Unexpected record signature: ...

  3. java 实现压缩单个文件

    先来实现一个简单的单文件压缩,主要是为了解一下压缩需要使用到的流.. 效果: 说明:压缩实现使用ZipOutputStream 代码: package com.gx.compress;import j ...

  4. java.util.zip_[Java 基础] 使用java.util.zip包压缩和解压缩文件

    Java API中的import java.util.zip.*;包下包含了Java对于压缩文件的所有相关操作. 我们可以使用该包中的方法,结合IO中的相关知识,进行文件的压缩和解压缩相关操作. Zi ...

  5. java 操作Zip文件(压缩、解压、加密)

    java 操作Zip文件(压缩.解压.加密) 依赖:点击下载 package com.zxl.test;import net.lingala.zip4j.model.ZipParameters; im ...

  6. java加密文件夹_使用java.util.zip压缩文件夹,支持加密,增加描述

    导读热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.io.File; import java.io.File ...

  7. JAVA实现把指定文件夹下的所有文件压缩成zip包

    1.代码如下: package cn.gov.csrc.base.util;import java.io.BufferedInputStream; import java.io.BufferedOut ...

  8. java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)

    这2个工具类都推荐使用统一个场景的不通过写法 推荐第一种 package com.gblfy.test;import java.io.BufferedInputStream; import java. ...

  9. java 生成zip如法打开_Java创建ZIP压缩文件的方法

    本文实例讲述了Java创建ZIP压缩文件的方法.分享给大家供大家参考.具体如下: 这里注意:建议使用org.apache.tools.zip.*包下相关类,否则可能会出现中文乱码问题. /** * 压 ...

最新文章

  1. 行将消失的烧瓦匠人:“仿古”热潮下迎新生曙光
  2. Leetcode周赛5827. 检查操作是否合法
  3. Can't connect to MySQL server on 'localhost' 10061
  4. BZOJ 5267 特工 (类FWT)
  5. c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...
  6. java版b2b2c社交电商spring cloud分布式微服务(二) 服务消费者(rest+ribbon)
  7. CentOS7 源码编译安装MySQL8.0.15 shell脚本
  8. 力扣1. 两数之和(哈希表,JavaScript)
  9. flock用法详解 linux_linux下C语言中的flock函数使用方法 .
  10. citrixreceiver云桌面系统_CStack xView桌面云平台与方德操作系统完成兼容性认证
  11. spring security 的 logout 功能
  12. 设计模式(一)----简单工厂、工厂方法和抽象工厂区别
  13. github上传代码_如何更新GitHub上的代码?
  14. 图像处理中ct图的通道是多少_CT图像后处理技术
  15. zblog自动采集伪原创站群文章更新器
  16. qsnctf 哥哥打篮球 wp
  17. windows10/11通过蓝牙传输文件
  18. EM算法在高斯混合模型学习中的应用
  19. 我所了解的JavaScript糟粕和鸡肋
  20. 软件测试从业者 - 向戚继光学管理

热门文章

  1. 最全面的gtest的TEST宏源码解析及自动调度机制
  2. 用Python提取图片主要颜色
  3. WIN10 解决“无法完成操作,因为文件包含病毒或潜在的垃圾软件”
  4. perl安装不全导致的Can't locate Time/HiRes.pm in @INC错误的处理方法
  5. 如何用待办工具组织每周的任务清单
  6. ubuntu 18.04 解决网易云音乐图标不能打开的问题
  7. go语言webSocket框架——gorilla
  8. 关系代数至少选修两门课_高中化学:选修三or选修五——一个帮你节省三个月的复习时间的重要选择(本文无图,浮躁慎入)...
  9. geany配置python_在python虚拟环境中使用geany
  10. 前端从一只小白到工作半年的心路历程