java实现多个文件以压缩包导出到本地
描述:使用java将多个文件同时压缩为压缩包,并导出到本地
/**
*压缩文件并导出
*/
public static void zipFiles() throws IOException {
File file = null;
String zipFileName = "";
File[] tempList = null;
file = new File("需要压缩的文件夹名称");
zipFileName = "/压缩文件名称.zip";
//压缩文件夹下所有文件
tempList = file.listFiles();
//加密打包文件开始
ZipUtils.createZipFile(压缩密码,导出的压缩文件包存储路径,zipFileName,tempList);
//加密打包文件结束
if(file.exists()) {
//删除已打包的文件夹
file.delete();
}
}
打包文件帮助类如下:需要引入zip4j.jar
import java.io.File;
import java.util.ArrayList;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
public class ZipUtils {
/**
* 加密文件并导出
* @param file 要进行压缩的文件
* @param password_zip 压缩密码
* @param templatepath_zip 压缩包路径
* @param fileName 压缩文件名
* @return zip文件
*
*/
public static ZipFile createZipFile(String passwordZip, String templatePathZip, String fileName,File...files) {
try { // 創建zip包,指定了zip路徑和zip名稱
final ZipFile zipFile = new ZipFile(templatePathZip + fileName);
// 向zip包中添加文件集合
final ArrayList<File> fileAddZip = new ArrayList<File>();
File file1 = zipFile.getFile();
// 判断是否存在
if (file1.exists()) {
file1.delete();
}
// 向zip包中添加文件
for(File file:files){
fileAddZip.add(file);
}
// 设置zip包的一些参数集合
final ZipParameters parameters = new ZipParameters();
// 是否设置密码(若passwordZip为空,则为false)
if(null != passwordZip && !passwordZip.equals("")) {
parameters.setEncryptFiles(true);
// 压缩包密码
parameters.setPassword(passwordZip);
} else {
parameters.setEncryptFiles(false);
}
// 压缩方式(默认值)
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
// 普通级别(参数很多)
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// 加密级别
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
// 创建压缩包完成
zipFile.createZipFile(fileAddZip, parameters);
//压缩完成后删除文件
for(File file:files){
file.delete();
}
return zipFile;
} catch (final ZipException e) {
e.printStackTrace();
return null;
}
}
}
java实现多个文件以压缩包导出到本地的更多相关文章
- java项目中Excel文件的导入导出
package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...
- java如何压缩多个文件到压缩包,并下载到浏览器?
java压缩多个文件到压缩包,并下载到浏览器 解决方法: 完整的方法如下,很简单,亲试有效,极力推荐. 我是以流作为文件,而不是file,循环把所有pdf文件压缩到pdf.zip压缩包中. 1.前 ...
- java 的在线下载文件 .pdf
java 的在线下载文件 .pdf 1.下载资源的本地位置 2.设置响应头 3.下载代码 1 PeriodicalResource periodicalResource = periodicalR ...
- java压缩文件或文件夹并导出
java压缩文件或文件夹并导出 tozipUtil: package com.zhl.push.Utils; import java.io.File; import java.io.FileInput ...
- java实现文件批量导入导出实例(兼容xls,xlsx)
1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...
- JAVA实用案例之文件导入导出(POI方式)
1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...
- JAVA实用案例之文件导出(JasperReport踩坑实录)
写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...
- Java中使用jxl.jar将数据导出为excel文件
Java对Excel文件的读写操作可由jxl.jar或poi.jar实现,这里使用jxl.jar完成对Excel文件的导出. 一.将Excel文件导出在本地 步骤: 创建文件 -> 创建 ...
- Java压缩多个文件并导出
controller层: /** * 打包压缩下载文件 */ @RequestMapping(value = "/downLoadZipFile") public void dow ...
随机推荐
- 二、Redis安装
一.下载Redis: 下载地址:https://github.com/MSOpenTech/redis/releases. 由于redis并不支持window系统,而window版本的redis的是由 ...
- windows常用快捷键和指令
快捷键: Ctrl+鼠标滚轮:更改图标大小(桌面).缩放(开始屏幕) Ctrl+A:选择所有 Ctrl+C:复制 Ctrl+E:选择搜索框(资源管理器) Ctrl+N:新窗口(资源管理器) Ctrl+ ...
- 迁移git
转自:https://www.darrenfang.com/2016/03/transferring-a-repository/ 因为更换服务器,需要将原来的 git 项目迁移到新的服务器上,需要保留 ...
- sql server查看表是否死锁
1,查看那个表死锁 select object_name(resource_associated_entity_id) as tableName, request_session_id as pid ...
- JQ高级
一.选择器 css语法选择器 $('css3 选择器位‘) 索引匹配 $('div:eq(0)') $('div').eq(0) 内容 $('div:contains(标签文本内容)') // 注:采 ...
- django集成celery
Celery是一个基于分布式消息传递的开源异步任务队列,在django实际应用场景下,往往有一些较为耗时,但并不需要返回值的任务, 例如发送邮件,更新我们自己的统计数据库,这时我们可以将这些任务交由c ...
- ElasticSearch常用操作命令
查看系统信息: curl 'http://username:password@192.168.0.40:9200/' curl 'http://username:password@127.0.0.1: ...
- Java EE Expression Language
什么是EL? 形如这样(立即执行的): ${sessionScope.cart.total} 或者这样(延迟执行的): #{customer.name} 的表达式语言(Expression Langu ...
- PHP 消息队列 详解
前言:之前做过的一些项目中有时候会接触到消息队列,但是对消息队列并没有一个很清楚的认知,本篇文章将会详细分析和归纳一些笔记,以供后续学习. 一.消息对列概念 从本质上说消息对列就是一个队列结构的中间件 ...
- Sublime Text3—设置快捷键打开浏览器
在不同浏览器查看代码效果可谓是家常便饭,所以用不同快捷键对应打开不同浏览器可以大大提高工作效率. 本篇分享个简单的方法只需二步: 一.安装插件SideBarEnhancements ctrl+shif ...