描述:使用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实现多个文件以压缩包导出到本地的更多相关文章

  1. java项目中Excel文件的导入导出

    package poi.excel; import java.io.IOException; import java.io.InputStream; import java.io.OutputStre ...

  2. java如何压缩多个文件到压缩包,并下载到浏览器?

    java压缩多个文件到压缩包,并下载到浏览器   解决方法: 完整的方法如下,很简单,亲试有效,极力推荐. 我是以流作为文件,而不是file,循环把所有pdf文件压缩到pdf.zip压缩包中. 1.前 ...

  3. java 的在线下载文件 .pdf

    java  的在线下载文件  .pdf 1.下载资源的本地位置 2.设置响应头 3.下载代码 1 PeriodicalResource periodicalResource = periodicalR ...

  4. java压缩文件或文件夹并导出

    java压缩文件或文件夹并导出 tozipUtil: package com.zhl.push.Utils; import java.io.File; import java.io.FileInput ...

  5. java实现文件批量导入导出实例(兼容xls,xlsx)

    1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...

  6. JAVA实用案例之文件导入导出(POI方式)

    1.介绍 java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下. 目前我所接触过的导入导出技术主要有POI和iRepo ...

  7. JAVA实用案例之文件导出(JasperReport踩坑实录)

    写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...

  8. Java中使用jxl.jar将数据导出为excel文件

      Java对Excel文件的读写操作可由jxl.jar或poi.jar实现,这里使用jxl.jar完成对Excel文件的导出. 一.将Excel文件导出在本地 步骤:   创建文件 -> 创建 ...

  9. Java压缩多个文件并导出

    controller层: /** * 打包压缩下载文件 */ @RequestMapping(value = "/downLoadZipFile") public void dow ...

随机推荐

  1. Hexo server报错TypeError: Cannot read property 'utcOffset' of null解决方法

    最近刚刚开始使用Hexo,新建了一篇article,运行hexo server时候总是报错Cannot read property 'offset' of null. 最后发现是因为手贱把_confi ...

  2. codeforces#1139D. Steps to One (概率dp+莫比乌斯反演)

    题目链接: http://codeforces.com/contest/1139/problem/D 题意: 在$1$到$m$中选择一个数,加入到一个初始为空的序列中,当序列的$gcd$和为$1$时, ...

  3. css 3 新特性

    CSS3的新特性大致分为以下六类 1.CSS3选择器 2.CSS3边框与圆角 3.CSS3背景与渐变 4.CSS3过渡 5.CSS3变换 6.CSS3动画 下面分别说一说以上六类都有哪些内容 CSS3 ...

  4. 剑指Offer面试题 二维数组中的查找

    题目链接:https://www.nowcoder.com/questionTerminal/abc3fe2ce8e146608e868a70efebf62e 题目大意: 略 分析: 对萌醒很开拓思维 ...

  5. mongodb备份还原

    备份:mongodump mongodump常用参数 --db:指定导出的数据库 --collection:指定导出的集合 --excludeCollection:指定不导出的集合 --host :远 ...

  6. 2019春招面试高频题(Java版),持续更新(答案来自互联网)

    第一模块--并发与多线程 Java多线程方法: 实现Runnable接口, 继承thread类, 使用线程池 操作系统层面的进程与线程(对JAVA多线程和高并发有了解吗?) 计算机资源=存储资源+计算 ...

  7. LODOP打印用JS获取的当前日期

    该文详细一步步解释JS获取当前时间的方法,新手小白也看到懂,最后是实际的获取当前年月份的方法.JS中的Date()对象,包含很多当前系统时间的方法,首先建立一个Date()对象,这里取名为date,然 ...

  8. model中的一些处理

    3.setting.py中设置 主要有三个地方需要设置: MEDIA_URL = ‘/media/’,设置该路径为了在模板中定位图片的位置,<img src="{{ MEDIA_URL ...

  9. VMware虚拟机里Centos7的IP地址查看方法

    电脑的虚拟机里面安装了一个Cetos 7 ,想用Xshell链接进行操作,发现没有IP显示,需要IP地址,我才能进行连接,用命令ip addr查看下: 发现ens33 没有inet 这个属性,那么就没 ...

  10. P1962 斐波那契数列-题解(矩阵乘法扩展)

    https://www.luogu.org/problemnew/show/P1962(题目传送) n的范围很大,显然用普通O(N)的递推求F(n)铁定超时了.这里介绍一种用矩阵快速幂实现的解法: 首 ...