目录

  • 1.将单个文件打成压缩包
  • 2.将E:\zip目录打成压缩包

1.将单个文件打成压缩包

需求:
将E盘下的 test.xls 文件打成压缩包保存到E盘目录下的 target.zip 文件中

代码实现:ZipUtil.java

import org.apache.commons.io.IOUtils;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;/*** <p> @Title ZipUtil* <p> @Description 将单个文件打成压缩包** @author ACGkaka* @date 2020/9/15 14:11*/
public class ZipUtil {public static void main(String[] args) throws Exception {String dir = "E:\\test.xls";String zip = "E:\\target.zip";zip(dir, zip);
}/*** 打包** @param dir            要打包的目录* @param zipFile        打包后的文件路径* @throws Exception*/public static void zip(String dir, String zipFile) throws Exception {try (ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))) {File sourceFile = new File(dir);out.putNextEntry(new ZipEntry(sourceFile.getName()));try (FileInputStream in = new FileInputStream(sourceFile)) {IOUtils.copy(in, out);} catch (Exception e) {throw new RuntimeException("打包异常: " + e.getMessage());}}}
}

2.将E:\zip目录打成压缩包

需求:
将E盘zip文件夹下面的内容打成压缩包保存到E盘目录下的 target.zip 文件中

代码实现:ZipUtil.java

import java.io.FileOutputStream;import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;import java.io.File;
import java.io.FileInputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;/*** <p> @Title ZipUtil* <p> @Description 文件夹打压缩包** @author ACGkaka* @date 2020/9/15 13:48*/public class ZipUtil {public static void main(String[] args) throws Exception {String dir = "E:\\zip";String zip = "E:\\target.zip";String rar = "E:\\target.rar";zip(dir, zip);zip(dir, rar, true);}/*** 打包** @param dir     要打包的目录* @param zipFile 打包后的文件路径* @throws Exception*/public static void zip(String dir, String zipFile) throws Exception {zip(dir, zipFile, false);}/*** 打包** @param dir            要打包的目录* @param zipFile        打包后的文件路径* @param includeBaseDir 是否包括最外层目录* @throws Exception*/public static void zip(String dir, String zipFile, boolean includeBaseDir) throws Exception {if (zipFile.startsWith(dir)) {throw new RuntimeException("打包生成的文件不能在打包目录中");}try (ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))) {File fileDir = new File(dir);String baseDir = "";if (includeBaseDir) {baseDir = fileDir.getName();}compress(out, fileDir, baseDir);}}public static void compress(ZipOutputStream out, File sourceFile, String base) throws Exception {if (sourceFile.isDirectory()) {base = base.length() == 0 ? "" : base + File.separator;File[] files = sourceFile.listFiles();if (ArrayUtils.isEmpty(files)) {// todo 打包空目录// out.putNextEntry(new ZipEntry(base));return;}for (File file : files) {compress(out, file, base + file.getName());}} else {out.putNextEntry(new ZipEntry(base));try (FileInputStream in = new FileInputStream(sourceFile)) {IOUtils.copy(in, out);} catch (Exception e) {throw new RuntimeException("打包异常: " + e.getMessage());}}}
}

参考博客:https://blog.csdn.net/frankcheng5143/article/details/105129108

Java如何将文件打包成Zip、Rar压缩包相关推荐

  1. spring mvc java 把多文件打包成zip,并下载

    再来一篇 /*** 压缩并导出文件* @param zipPath 压缩文件临时路径 路径最后不要有 /* @param zipName 压缩为文件名 **.zip* @param createFil ...

  2. java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){String filePath ="";//文件路径Str ...

  3. java 把文件打包成zip_java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){ String filePath ="";//文件路径 S ...

  4. Java将多个文件打包成ZIP并下载

    Java将多个文件打包成ZIP并下载 需求是多个文件需要同时打包成zip压缩文件并下载到本地,首先我需要的是知道下载文件的路径.我有一个专门的sys_file_info表,表中有对应的文件路径.业务表 ...

  5. 文件打包成zip类型文件

    研究了一下,如何把文件打包成Zip文件. 下面是我经历的进程: 1. 首先看到了微软本身的打包代码,是通过System.IO.Packaging 命令空间来进行打包,你可以点击以上的链接来查看其如何打 ...

  6. python打包zip文件_python 解压文件,合并文件 打包成zip格式文件 生成MD5值

    #!/usr/bin/env python #_*_encoding:utf-8 # 2018/05/29 #augustyang #2.0 ''' 解压文件,合并文件 打包成zip格式文件 生成MD ...

  7. 关于springmvc下服务器文件打包成zip格式下载功能

    关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储 版权声明:本文为博主原创 ...

  8. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...

    ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...

  9. SpringBoot将文件打包成zip存放或导出

    目录 前言 环境准备 将文件打包成Zip存放 代码 测试 将文件打包成zip并导出 代码 测试 结尾 前言 相信各位看官在工作中都会遇到过要把多个文件打包成一个压缩文件然后导出,或者将文件打包成Zip ...

最新文章

  1. 学会这9招,你也能成为演讲高手
  2. 信息系统项目管理师-论文要求
  3. 什么是saashrm
  4. EBGP邻居抖动问题
  5. nginx总结(面试必看)
  6. Laravel核心解读--控制器 1
  7. OpenCV kmeans代码
  8. android frida 检测_Android 逆向 | Frida 是万能的吗? 检测 Frida 的几种办法
  9. python os.open禁止写入缓存区_Python-设置文件缓冲类型
  10. matlab差分方程实验报告,实验二微分方程与差分方程模型matlab求解.doc
  11. 【三维激光扫描】第四章:点云数据处理
  12. 计算机上的证书安装不了,数字证书认不到怎么办?
  13. w7系统事件日志服务器,win7事件查看器里说事件日志服务不可用怎么回事
  14. 【GDScript】保存/加载物品装备数据
  15. 关于Flash Media Server
  16. linux没有i18n文件,【Linux】/etc/sysconfig/i18n文件详解
  17. 学习笔记:C++进阶【继承、多态、二叉树进阶、map和set、哈希、C++11、异常、智能指针、特殊类设计、C++的类型转换】
  18. 大数据搜索引擎技术_网络数据搜索技术
  19. Categories各种举例
  20. 二分法的算法及应用场景(只更新了一种)

热门文章

  1. Docker 6-镜像导出导入以及和容器导出导入的区别
  2. 电商运营基本常识你都知道哪些?
  3. oracle 01405 提取的值为null,ORA-01405 : fetched column value is NULL
  4. 联想服务器如何重装win 2012系统,联想电脑如何重装win10操作系统
  5. Facebook使用虚拟信用卡养广告账户扣费跑广告实用技巧
  6. Openfire 用户密码加密
  7. ThinkPad R480 C盘 固态128G 升级到 512G + 系统无缝迁移,不用重装软件
  8. 双链路热备份(负载分担)实验
  9. 设计师电脑之家赠送U盘版PE网络版WIN10系统安装版
  10. android时间错误的是什么意思啊,android – 困惑为什么会发生这些错误,以及它们的意思?...