在我们开发中,经常面临上传多个文件,但是当文件过大或者数量过多时,会非常消耗时间, 实现多个文件压缩到一个ZIP文件中去,及压缩了大小,又减少了传输次数。
思路:将多个要压缩的文件转成File对象,传入新建的压缩文件的File对象完成多文件的压缩,最后选择是否删除压缩前的文件。
工具类代码如下:

/*** 多个文件压缩* @param srcFiles   压缩前的文件* @param zipFile    压缩后的文件*/public static void zipFiles(File[] srcFiles,  File zipFile) {// 判断压缩后的文件存在不,不存在则创建if (!zipFile.exists()) {try {zipFile.createNewFile();} catch (IOException e) {e.printStackTrace();}}// 创建 FileOutputStream 对象FileOutputStream fileOutputStream = null;// 创建 ZipOutputStreamZipOutputStream zipOutputStream = null;// 创建 FileInputStream 对象FileInputStream fileInputStream = null;try {// 实例化 FileOutputStream 对象fileOutputStream = new  FileOutputStream(zipFile);// 实例化 ZipOutputStream 对象zipOutputStream = new  ZipOutputStream(fileOutputStream);// 创建 ZipEntry 对象ZipEntry zipEntry = null;// 遍历源文件数组for (int i = 0; i < srcFiles.length;  i++) {// 将源文件数组中的当前文件读入  FileInputStream 流中fileInputStream = new  FileInputStream(srcFiles[i]);// 实例化 ZipEntry 对象,源文件数组中的当前文件zipEntry = new  ZipEntry(srcFiles[i].getName());zipOutputStream.putNextEntry(zipEntry);// 该变量记录每次真正读的字节个数int len;// 定义每次读取的字节数组byte[] buffer = new byte[1024];while ((len =  fileInputStream.read(buffer)) > 0) {zipOutputStream.write(buffer, 0,  len);}fileInputStream.close();}} catch (IOException e) {e.printStackTrace();}finally{//关闭流if(zipOutputStream != null){zipOutputStream.closeEntry();zipOutputStream.close();}if(fileOutputStream != null){fileOutputStream.close();}//压缩完成删除压缩前的文件for (File file : srcFiles) {if(file.exists()){file.delete();}}}}

Java 多文件压缩为ZIP相关推荐

  1. java 把文件压缩成zip文件

    ackage org.fh.util;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...

  2. java多文件压缩为ZIP

    /*** 多文件压缩为一个文件* * @param srcFiles* @param zipFile*/public static void zipFiles(File[] srcFiles, Fil ...

  3. Java把文件压缩成.zip压缩包和解压.zip压缩包(ZipOutputStream、ZipInputStream)

    文章目录 压缩成.zip 解压.zip 压缩成.zip 代码如下: /*** 压缩成ZIP** @param srcDir 压缩文件夹路径* @param out 压缩文件输出流* @throws R ...

  4. Java多文件压缩下载解决方案

    Java多文件压缩下载解决方案 需求: 会员运营平台经过改版后页面增加了许多全部下载链接,上周上线比较仓促,全部下载是一个直接下载ZIP压缩文件的链接,每个ZIP压缩文件都是由公司运营人员将页面需要下 ...

  5. java mp3文件压缩_java实现文件压缩

    java实现文件压缩:主要是流与流之间的传递 代码如下: package com.cst.klocwork.service.zip; import java.io.File; import java. ...

  6. java pdf文件压缩_PDF文件压缩转换教程

    现在在很多的网站上传文件的时候,不知道大家有没有遇到因为pdf文件太大,不能上传这种情况.还有很多限制PDF文件大小,由于PDF文件较多,那么就会导致效率大大减小.如果PDF文件过大进行PDF文件传输 ...

  7. Java实现文件压缩与解压[zip格式,gzip格式]

    原文:http://www.cnblogs.com/visec479/p/4112881.html#3069573 Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个 ...

  8. JAVA实现把指定文件夹下的所有文件压缩成zip包

    1.代码如下: package cn.gov.csrc.base.util;import java.io.BufferedInputStream; import java.io.BufferedOut ...

  9. java实现文件压缩下载----压缩下载zip

    文件压缩下载 Controller层: /** *文件压缩下载 *billname:文件名 *filename:文件存放路径 */ public void downloadsource(HttpSer ...

最新文章

  1. 这个GitHub 1400星的Git魔法书火了,斯坦福校友出品丨有中文版
  2. 笔记本控制机器人方法
  3. Win7下使用openssl时出现“Unable to write ‘random state’‘的问题
  4. java的平方分之x的平方加xy_Java面试宝典_基础编程练习题_完全平方数
  5. 我的docker随笔31:oracle数据库再次部署
  6. 地理信息-圆形、椭圆、扇形的表示方法及相关判断
  7. perl CGI::Session
  8. dataframe groupby_详解pandas中的map、apply、applymap、groupby、agg.
  9. Python教程大纲
  10. PostgreSQL 之 分区表
  11. 什么是servlet?---总结一
  12. 配置思科交换机冗余链路汇聚
  13. 学习笔记20--自动驾驶测试体系
  14. 生活是艰难的,我又划着我的断桨出发了
  15. 微生物组-扩增子16S分析第10期(线上/线下同时开课,本年最后一期)
  16. PSPICE报错ERROR(ORPSIM-16276): Can‘t find library
  17. k折交叉验证 python_Python实现K折交叉验证法的方法步骤
  18. Node之Express服务器启动安装与配置
  19. SDSC2019【游记】
  20. win10 安装 Linux子系统(WSL)

热门文章

  1. 字节跳动面试--二面算法题复盘
  2. 测绘资质在线处理资质问题
  3. Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC 8.6 - 图生成 小世界模型
  4. 深度学习AI美颜系列---人脸数据增强
  5. java哥验证德巴赫猜想,C语言验证哥德巴赫猜想
  6. 统信UOS系统Redis-5.0.5安装包方式部署
  7. 3d稀疏卷积——spconv源码剖析(三)
  8. 如何把图片转换成PDF?4种简单快捷的方法,一键将图片转PDF
  9. eating的中文意思_eating是什么意思_eating的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. SPA 中前端路由基本原理与实现方式