文章目录

  • 一、详细代码
    • 1.Controller层
    • 2.Service层

一、详细代码

1.Controller层

代码如下(示例):

    @PostMapping("/download")public GeneralResult downloadFilesTest(HttpServletRequest request,HttpServletResponse response){return scriptService.downloadFilesTest(request,response);}

2.Service层

   public void downloadFilesTest(HttpServletRequest request, HttpServletResponse response){String filePath = "D:/test" //test为D盘下的文件夹File file = new File(filePath);//创建输出流OutPutStream out = null;ZipOutputStream zos = null;try{out = response.getOutputStream();zos = new ZipOutputStream(out);compress(file,zos,file.getName()); //压缩文件方法//刷新流和关闭流,注意流的关闭顺序,否则压缩文件出来会损坏zipOutputStream.flush();out.flush();} catch (IOException e) {e.printStackTrace();} finally {if (zipOutputStream != null) {try {zipOutputStream.close();} catch (IOException e) {e.printStackTrace();}}if (out != null) {try {out.close();} catch (IOException e) {e.printStackTrace();}}}}}private static void compress(File sourceFile, ZipOutputStream zos, String name) throws IOException {byte[] buf = new byte[1024];if(sourceFile.isFile()){ //判断是否为文件// 压缩单个文件,压缩后文件名为当前文件名zos.putNextEntry(new ZipEntry(name));// copy文件到zip输出流中int len;FileInputStream in = new FileInputStream(sourceFile);while ((len = in.read(buf)) > 0) {zos.write(buf, 0, len);}zos.closeEntry();in.close();}else { //路径文件为文件夹,用递归的方法压缩文件夹下的文件File[] listFiles = sourceFile.listFiles();if (listFiles == null || listFiles.length == 0) {// 空文件夹的处理} else {// 递归压缩文件夹下的文件for (File file : listFiles) {compress(file, zos, name + "/" + file.getName());}}}}

java压缩文件或文件夹并返回流给前端相关推荐

  1. 使用java创建pdf 并返回流给前端

    使用java创建pdf 并返回流给前端 业务需求,页面点击打印预览文件,然后点击打印调用系统(浏览器)打印,经网上查阅资料,自己整理后记录下来 首先是自己整理的帮助类 import cn.bt.com ...

  2. java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例

    本文实例讲述了java实现一次性压缩多个文件到zip中的方法.分享给大家供大家参考,具体如下: 1.需要引入包:import java.io.File; import java.io.FileInpu ...

  3. java 压缩pdf_java实现文件的压缩和解压

    代码压缩实现 package com.hjh.demo.zip; import java.io.BufferedInputStream; import java.io.File; import jav ...

  4. java压缩解压文件工具类

    controller中使用 @PostMapping(value = "/importZip")public Result<?> importExcel(HttpSer ...

  5. java压缩文件的生成,Java 压缩生成zip文件

    保留目录结构,递归压缩多个文件夹生成一个zip文件 调用demo import cn.common.utils.ZipUtil; import com.google.common.collect.Li ...

  6. java代码实现解压文件_Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...

  7. java 压缩文件tar_使用Java API进行tar.gz文件及文件夹压缩解压缩

    在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...

  8. java 压缩文件夹_java 实现压缩文件(单文件 或 文件夹)

    接着上篇了解一下java压缩实现过程,下面的是支持 单文件 或 文件夹 压缩的实现,使用递归. 效果: 代码: package com.gx.compress; import java.io.Buff ...

  9. 使用Java API进行tar.gz文件及文件夹压缩解压缩

    在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...

最新文章

  1. 高通暂时不会针对物联网打造专属处理器
  2. 20155307 2016-2017第二次《Java程序设计》课堂实践项目
  3. nacos 公共_SpringCloud配合注册中心Nacos的使用
  4. JFreeChart(五)之XY图
  5. leetcode46. 全排列(回溯)
  6. 前端学习(736):函数的返回值return
  7. 双屏怎么快速切换鼠标_在笔记本上实现双屏设计,怎么做到的?
  8. 风变编程课 囚徒困境 答案_当您对所有这些有用的在线编程课程感到不知所措时,如何摆脱困境...
  9. 【资源】100页机器学习入门完整版,初学者必备!
  10. 铁路查询系统c语言,铁路查询系统
  11. linux运维视频教程
  12. mac IDEA java 如何进入到方法跳转 快捷键
  13. USB转RJ45串口调试线(console线)
  14. 树莓派安装Jupyter Notebook实现网页编程
  15. 《Linux内核设计与实现》读书笔记(八)- 中断下半部的处理
  16. 【MATLAB统计分析与应用100例】案例011:matlab读取Excel数据,调用regress函数作一元线性回归分析
  17. 一步步教你创建自己的数字货币(代币)进行ICO
  18. python支持char数据类型吗_python有char类型吗,
  19. 概率统计及其应用第三章知识总结_数学篇:概率论复习规划
  20. 吴军关于“命运”的分享

热门文章

  1. 【亲测可用】解决Ultra iso软碟通写入硬盘映像时 硬盘映像容量太小问题
  2. python 输出\xhh格式的16进制数据(改2)
  3. sync failed 错误 springboot
  4. 美标 三段式、四段式 耳机头 以旧换新
  5. 使用qt实现多线程编程
  6. 安装tensorflow报错
  7. BIM模型到3Dtiles转换后精确定位工作流及存在的问题
  8. 使用ssh对服务器进行登录
  9. mongodb 集群shard_MongoDBV3.0.7版本(shard+replica)集群的搭建及验证
  10. 八、STM32串口通信