描述:使用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. 4.26 IO流

  2. 【spring源码分析】IOC容器初始化(六)

    前言:经过前几篇文章的讲解,我们已经得到了BeanDefinition,接下来将分析Bean的加载. 获取Bean的入口:AbstractApplicationContext#getBean publ ...

  3. 使用 Flask-Cache 缓存给Flask提速

    https://blog.csdn.net/u013205877/article/details/78013289

  4. 逆向-攻防世界-CSAW2013Reversing2

    运行程序乱码,OD载入搜索字符串,断电到弹窗Flag附近. 发现跳过00B61000函数,弹窗乱码,我们试试调用00B61000函数.将00B61094的指令修改为JE SHORT 00B6109b. ...

  5. 03-三层交换机的OSPF实验

    三层交换机的OSPF实验 1.OSPF介绍 开放式最短路径优先(英语:Open Shortest Path First,缩写为 OSPF)是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故 ...

  6. 使用栈实现队列(2)(Java)

    class MyQueue { private Stack s1; private Stack s2; public MyQueue(int size) { this.s1 = new Stack(s ...

  7. 在MVC中Dashboard基础入门操作

    DevExpress中的Dashboard这个图形插件真的很好用, 只需要在设计器绑定数据就行了,完全不用写后台代码.我也是刚学这个插件,可能还有一些我没有了解的知识点,忘各位大佬不吝赐教.我写这篇博 ...

  8. CMDB(Configuration Management Database)资产管理系统和 运维自动化

    一.传统运维方式和自动化运维的区别 二.CMDB的介绍 三.CMDB的四种方式 四.项目的目录架构介绍以及配置文件的升级编写 五.比较low的项目架构书写 六.可插拔式收集资产 七.对收集的服务器信息 ...

  9. linux 下修改etc/profile文件

    etc/profile文件是只读的,直接用vi或gedit打开修改后是无法保存的.要修改profile,需要取得root权限,(使用gedit编辑) 1. su root   输入密码 进入root模 ...

  10. iOS 使用百度的人脸识别登录验证,解决认证失败不跳转界面连续认证,认证相似度对比

    在使用百度人脸识别出现的问题:小米6调用摄像机是黑白的一个情况,iOS上会出现识别准确性上的问题(多次代开认证,会通过) 人脸识别(活体验证): 1.芝麻认证 : 0.4元/次,需要企业企业认证.不能 ...