/*** 压缩** @param files 多文件* @param zipFilePath 目标压缩文件路径* @throws IOException*/
public static void zip(List<File> files, String zipFilePath) throws IOException {log.info("启用ZIP压缩工具 >>>>>>>>>> ");if(files == null || files.size() == 0) return;if(StringUtils.isBlank(zipFilePath)) return;File zipFile = createFile(zipFilePath);FileOutputStream fileOutputStream = null;ZipOutputStream zipOutputStream = null;FileInputStream inputStream = null;try {fileOutputStream = new FileOutputStream(zipFile);zipOutputStream = new ZipOutputStream(fileOutputStream);for(File file : files) {log.info("正在打包文件 -> " + file.getAbsolutePath());if(file.exists()) {zipOutputStream.putNextEntry(new ZipEntry(file.getName()));inputStream = new FileInputStream(file);int len;while((len = inputStream.read(BUF)) > 0) {zipOutputStream.write(BUF, 0, len);}zipOutputStream.closeEntry();inputStream.close(); //解决方案}  }log.info("压缩完成 <<<<<<<<<< " + zipFile.getAbsolutePath());} finally {if(inputStream != null) {inputStream.close();}if(zipOutputStream != null) {zipOutputStream.close();}if(fileOutputStream != null) {fileOutputStream.close();}}
}

在循环体内,每次创建一个文件输入流对象,最后关闭的时候,只关闭最后一个文件流,导致其他的文件夹没有关闭,下次下载时,就无法删除之前的下载文件,导致下载时总是累加文件

批量下载文件,循环中文件流没有关闭导致每次下载会累加之前的下载文件相关推荐

  1. linux将文件夹中的子文件夹(指定个数)移到新的文件夹中

    ls <old_file>/|head -25000|xargs -i mv <old_file>/{} <new_file>/ eg: ls all/|head ...

  2. python win32转pdf 横版_解决pythoncom和win32com下docx文件转化为pdf文件过程中Word后台进程无法关闭的问题...

    1 目的 笔者在python3.6环境下,想把一个word文档转化为pdf文件.使用了以下的方式 from win32com import client import pythoncom doc2pd ...

  3. gorm踩坑 事务中Row/Rows未关闭导致panic

    现象 web服务有个接口,service层开启事务,调用dao层两个接口.发现第二个dao层接口返回Error,在service层事务回滚时panic,该panic无法被recover. 代码详情 事 ...

  4. 如何批量导入不同文件夹中的图片

    在标签设计印刷工作中,批量导入图片已经是非常普遍的功能了.不论图片名称是否有规律或者是否有在数据库中保存,经过一些专业的设置都可以实现批量导入.那么如果是不同文件夹中的图片该如何导入呢? 文件夹中图片 ...

  5. 批量将多个文件夹整理合并到一个文件夹中

    概要:文件夹整理是我们常用的功能,怎么样才能高效的批量将多个文件夹整理合并到一个文件夹中呢?我们最拿手的就是复制和粘贴,但是复制粘贴的效率太慢了,要想知道我们如何批量快速地将多个文件夹整理合并到一个文 ...

  6. mvfiles:一次性提取多个文件夹中的文件

      作者:吴玉轩 (南开大学) Stata 连享会: 知乎 | 简书 | 码云 | CSDN   Stata连享会 精品专题 || 精彩推文 2019暑期"实证研究方法与经典论文" ...

  7. linux ruby 删除文件,ruby 删除文件夹(包括文件夹中的文件夹和文件)

    php 得到一个文件夹下的所有文件,包括子文件中的文件 $dir = FCPATH."uploads/attachment/"; $this->getFiles($dir); ...

  8. 获取文件夹中所有文件清单

    如何批量提取文件夹里的文件名 电脑问题  PConline IT百科 想要实现批量提取文件名这个功能去请教别人,vbs高手说写一个程序就行了;excel高手说编一个函数或者宏定义就OK.拜托,我只是要 ...

  9. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

最新文章

  1. zabbix企业应用之监控oracle
  2. 互联网协议 — RIP 路由信息协议
  3. Java 时间 Date类型,Long类型,String类型
  4. C#中的依赖注入那些事儿
  5. (二)HTTP初相识--了解HTTP协议
  6. Qt工作笔记-Qt5中中文编码方面的笔记
  7. 《庆余年》全集资源遭盗播,腾讯、爱奇艺、剧方联合回应...
  8. 图解系列之JAVA执行过程
  9. 分享一个dapper简单封装
  10. 容器技术Docker K8s 52 边缘容器服务(ACK@Edge)-边缘计算和边缘容器
  11. ApacheCN 活动汇总 2019.7.12
  12. android模拟器 分辨率,Android模拟器各个皮肤的分辨率
  13. verilog实现pwm
  14. uni-app实现支付及项目打包上传
  15. 云原生 - 负载均衡(SLB)多可用区
  16. Office 2010 中受保护的视图
  17. python2.7安装pytorch_Pytorch如何安装,Linux安装Pytorch,OSX安装Pytorch教程
  18. 计算机磁盘管理找不到第二块硬盘,新加的硬盘没有显示怎么办?新加硬盘分区方法...
  19. 十五件事让身体越来越差
  20. 【坑点】Intellij Idea 出现“Unable to parse template”问题

热门文章

  1. 比较v-bind和v-model
  2. 关于matlab向文件写入数据的方法——留着备用
  3. 展望2018:WebRTC大规模商用元年
  4. 1分钟构建API网关日志解决方案
  5. 实现Ant Design 自定义表单组件
  6. 一个班37人考进清华北大,老师发来一则短信,家长都沉默了
  7. CBA 赛程的笔记 - 北京首钢
  8. Piranha实验总结
  9. MySQL从5.7.32升级到8.0.22
  10. EOS Cleos 命令使用指南