java压缩文件或文件夹并返回流给前端
文章目录
- 一、详细代码
- 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压缩文件或文件夹并返回流给前端相关推荐
- 使用java创建pdf 并返回流给前端
使用java创建pdf 并返回流给前端 业务需求,页面点击打印预览文件,然后点击打印调用系统(浏览器)打印,经网上查阅资料,自己整理后记录下来 首先是自己整理的帮助类 import cn.bt.com ...
- java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例
本文实例讲述了java实现一次性压缩多个文件到zip中的方法.分享给大家供大家参考,具体如下: 1.需要引入包:import java.io.File; import java.io.FileInpu ...
- java 压缩pdf_java实现文件的压缩和解压
代码压缩实现 package com.hjh.demo.zip; import java.io.BufferedInputStream; import java.io.File; import jav ...
- java压缩解压文件工具类
controller中使用 @PostMapping(value = "/importZip")public Result<?> importExcel(HttpSer ...
- java压缩文件的生成,Java 压缩生成zip文件
保留目录结构,递归压缩多个文件夹生成一个zip文件 调用demo import cn.common.utils.ZipUtil; import com.google.common.collect.Li ...
- java代码实现解压文件_Java压缩/解压文件的实现代码
用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...
- java 压缩文件tar_使用Java API进行tar.gz文件及文件夹压缩解压缩
在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...
- java 压缩文件夹_java 实现压缩文件(单文件 或 文件夹)
接着上篇了解一下java压缩实现过程,下面的是支持 单文件 或 文件夹 压缩的实现,使用递归. 效果: 代码: package com.gx.compress; import java.io.Buff ...
- 使用Java API进行tar.gz文件及文件夹压缩解压缩
在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...
最新文章
- 高通暂时不会针对物联网打造专属处理器
- 20155307 2016-2017第二次《Java程序设计》课堂实践项目
- nacos 公共_SpringCloud配合注册中心Nacos的使用
- JFreeChart(五)之XY图
- leetcode46. 全排列(回溯)
- 前端学习(736):函数的返回值return
- 双屏怎么快速切换鼠标_在笔记本上实现双屏设计,怎么做到的?
- 风变编程课 囚徒困境 答案_当您对所有这些有用的在线编程课程感到不知所措时,如何摆脱困境...
- 【资源】100页机器学习入门完整版,初学者必备!
- 铁路查询系统c语言,铁路查询系统
- linux运维视频教程
- mac IDEA java 如何进入到方法跳转 快捷键
- USB转RJ45串口调试线(console线)
- 树莓派安装Jupyter Notebook实现网页编程
- 《Linux内核设计与实现》读书笔记(八)- 中断下半部的处理
- 【MATLAB统计分析与应用100例】案例011:matlab读取Excel数据,调用regress函数作一元线性回归分析
- 一步步教你创建自己的数字货币(代币)进行ICO
- python支持char数据类型吗_python有char类型吗,
- 概率统计及其应用第三章知识总结_数学篇:概率论复习规划
- 吴军关于“命运”的分享
热门文章
- 【亲测可用】解决Ultra iso软碟通写入硬盘映像时 硬盘映像容量太小问题
- python 输出\xhh格式的16进制数据(改2)
- sync failed 错误 springboot
- 美标 三段式、四段式 耳机头 以旧换新
- 使用qt实现多线程编程
- 安装tensorflow报错
- BIM模型到3Dtiles转换后精确定位工作流及存在的问题
- 使用ssh对服务器进行登录
- mongodb 集群shard_MongoDBV3.0.7版本(shard+replica)集群的搭建及验证
- 八、STM32串口通信