java将文件夹压缩成zip java按照目录结构压缩文件夹
前言
- 用java将文件夹压缩成zip包,像压缩软件一样,按照目录结构压缩(包含当前文件夹)
- 网上没有找到太合适的,借鉴其它帖子,自己写了一个
代码
package xin.yangshuai.mybatisgeneratorweb.util;import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;/*** ZipUtils** @author shuai* @date 2021/7/30*/
public class ZipUtils {public static void main(String[] args) throws Exception {File sourceFile = new File("D:/test/testFile");fileToZip(sourceFile);}/*** sourceFile一定要是文件夹* 默认会在同目录下生成zip文件** @param sourceFilePath* @throws Exception*/public static void fileToZip(String sourceFilePath) throws Exception {fileToZip(new File(sourceFilePath));}/*** sourceFile一定要是文件夹* 默认会在同目录下生成zip文件** @param sourceFile* @throws Exception*/public static void fileToZip(File sourceFile) throws Exception {if (!sourceFile.exists()) {throw new RuntimeException("不存在");}if (!sourceFile.isDirectory()) {throw new RuntimeException("不是文件夹");}//zip文件生成位置File zipFile = new File(sourceFile.getAbsolutePath() + ".zip");FileOutputStream fos = new FileOutputStream(zipFile);ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos));fileToZip(zos, sourceFile, "");zos.close();fos.close();}private static void fileToZip(ZipOutputStream zos, File sourceFile, String path) throws Exception {System.out.println(sourceFile.getAbsolutePath());//如果是文件夹只创建zip实体即可,如果是文件,创建zip实体后还要读取文件内容并写入if (sourceFile.isDirectory()) {path = path + sourceFile.getName() + "/";ZipEntry zipEntry = new ZipEntry(path);zos.putNextEntry(zipEntry);for (File file : sourceFile.listFiles()) {fileToZip(zos, file, path);}} else {//创建ZIP实体,并添加进压缩包ZipEntry zipEntry = new ZipEntry(path + sourceFile.getName());zos.putNextEntry(zipEntry);byte[] bufs = new byte[1024 * 10];//读取待压缩的文件并写进压缩包里FileInputStream fis = new FileInputStream(sourceFile);BufferedInputStream bis = new BufferedInputStream(fis, 1024 * 10);int read = 0;while ((read = bis.read(bufs, 0, 1024 * 10)) != -1) {zos.write(bufs, 0, read);}bis.close();fis.close();}}
}
java将文件夹压缩成zip java按照目录结构压缩文件夹相关推荐
- java 文件夹打包成zip(带有嵌套的那种文件夹)
文件夹中还嵌套有其他的文件夹或者文件 要进行压缩成zip 代码参考如下: public void zipFile() throws IOException {String sourceFile = & ...
- Java实现将文件或者文件夹压缩成zip
Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类.但找了好多篇博客,总是发现有bug.因此就自己来写了个工具类. 这个工具类的功 ...
- java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...
项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...
- Java将网络图片下载至文件夹,然后将文件夹压缩成zip
思路: 第一步.创建一个文件夹A,用来存图片 第二步.将图片转为图片流写入文件夹A 第三步.将文件夹压缩成ZIP 下面上代码 public class FileZipUtils {public sta ...
- Java将指定文件/文件夹压缩成zip、rar压缩文件
import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream;import java.io.*; ...
- java 把文件打包成zip文件_java将文件或是文件夹打包压缩成zip格式
导读热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.io.BufferedInputStream; impo ...
- java 把文件压缩成zip文件
ackage org.fh.util;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...
- java批量文件打包成压缩成zip下载和大量数据导出excel时的处理方法
对于我们来说,java导出数据成excel或其他数据文件,或者下载资源是开发中的家常便饭, 但是在导出的时候,如果点击一个按钮导出几百万条数据,如果不作处理的话很可能会出现一系列的问题. 这里介绍打包 ...
- java zip压缩 加密码_java 压缩成zip文件、解压zip文件(可设置密码)
1.情景展示 java实现将文件夹进行压缩打包的功能及在线解压功能 2.解决方案 方式一:压缩.解压zip 准备工作:slf4j-api.jar org.slf4j slf4j-api 1.7.25 ...
最新文章
- (十)mybatis之配置(mybatis-config.xml)
- Idea-LifecycleException when deploying
- centos7 django mysql_CentOS7操作系统下快速安装MySQL5.7
- VC实现表单提交并设置获取COOKIE:
- 如何使用JavaScript获取客户端的IP地址?
- 用POP动画编写带富文本的自定义动画效果
- Eratosthenes筛法
- 作业帮冯雪胡不归问题_作业帮学习平台微信服务号关注
- linux系统重装win系统教程,Win10如何重装linux系统 Win10重装linux系统教程
- 读书笔记——《一个人的朝圣》
- 钟表维修管理系统技术解析(六) 录入保修单
- 2019_WWW_Graph Neural Networks for Social Recommendation
- 京东常用的API接口
- 国外服务器被攻击以及应对方法
- 平方度用计算机打出来,角度计算器-角度计算器
- 泛娱乐 | 2020人才市场洞察及薪酬指南
- 开启关闭oracle数据库,手动开启/关闭Oracle数据库
- GEE 提取长系列NDVI像元值
- Map根据Key值进行排序(升序加降序)
- GNURadio 3.9 使用 OOT 自定义模块问题记录
热门文章
- macbook pro适合python编程么_编程应该选macbook pro还是thinkpad T(从性能角度出发)?...
- python 经纬度批量逆向定位地址县市等信息
- Flink-电商用户行为分析(网站总浏览量(PV)的统计)
- Haproxy 代理后端服务
- 爬取微信还有朋友圈数据
- 华为Mate40、华为Mate40Pro、华为Mate40Pro+和华为Mate40RS保时捷值得买吗
- Ubutu16.04 环境下添加打印机,安装Brother兄弟打印机驱动
- 风柔月清,吾爱在浅秋
- “undefined reference to“ 问题解决方法
- ARP欺骗原理及实现