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 ...
 
随机推荐
- npm基本操作(安装,搭建环境,打包)
			
Nodejs(npm)环境安装: npm的安装配置(从nodejs网站上安装npm): Windows安装Nodejs操作步骤如下: 64 位安装包下载地址 : https://nodejs.org/ ...
 - DRF限制访问频次
			
官方文档:https://www.django-rest-framework.org/api-guide/throttling/ 1.什么场景下需要限制访问频次呢? 1)防爬虫:爬虫可能会在短时间内大 ...
 - [Bilingual] Different proofs of Jordan cardinal form (Jordan标准型的几种证明)
 - 使用VScode配合chrome实现网页自动刷新
			
1.使用插件:livereload 2.VScode商店中搜索上述插件安装 3.Chrome商店中搜素上述插件安装 并设置允许访问文件网址: 4.在两方插件都打开的情况下,VScode中按下ctrl+ ...
 - 软工+C(5): 工具和结构化(重构中, part 1...)
			
// 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 目录: ** 0x01 讨论:工具/轮子 ** 0x02 讨论:结构/演进 ** 0x03 讨论:行为/活动 ** 0x04 ...
 - CodeForces 1151D Stas and the Queue at the Buffet
			
题目链接:http://codeforces.com/contest/1151/problem/D 题目大意: 有n个学生排成一队(序号从1到n),每个学生有2个评定标准(a, b),设每个学生的位置 ...
 - Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest
			
情况是这样子的,导入一个比较老的项目(两年前),它依赖于一个 Libraray,已经先导入了 library,现在导入项目的时候出了错 (1) Android Studio 目前提供将 SDK包成 . ...
 - python 命令行参数——argparse模块的使用
			
以下内容主要来自:http://wiki.jikexueyuan.com/project/explore-python/Standard-Modules/argparse.html argparse ...
 - [模板] tarjan/联通分量/dfs树
			
//to update 边的分类 有向图边分为四类: 树边, 前向边, 返祖边(后向边), 横叉边. 上图: 判定 有向图 对图进行dfs, 不考虑已经遍历过的点, 得到dfs序 \(dfn_i\). ...
 - Leetcode 4.28 Tree Easy
			
1. 101. Symmetric Tree 用递归. class Solution { public boolean isSymmetric(TreeNode root) { if( root == ...