目标:

生成多个csv文件,并打包返回给前端

  • 生成csv文件
  • 打包zip 返回文件流

开干:

1 引入pom

  <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.4</version></dependency>

2 获取数据,然后生成csv文件

控制器如下:

 @PostMapping("/export")@ApiOperation("导出")public void export(@RequestBody GraphData graphData, HttpServletResponse response, @PathVariable String space) throws UnsupportedEncodingException {vertexService.export(graphData,response,space);}

主要是通过 response 返回文件流;

通过数据写入到csv中

          String fileName = "关系-" + key;String pathname = path + "/" + fileName + ".csv";//生成的文件位置 和 文件名称CsvWriter csvWriter = CsvUtil.getWriter(new File(pathname), CharsetUtil.CHARSET_UTF_8);//设置编码格式for (List<String> row : value) {//数据集合,写入每行数据csvWriter.write(Convert.toStrArray(row));}csvWriter.flush();csvWriter.close();// 一个文件已经完成,多个文件 循环此代码 多个文件都放在同一个文件夹下

3 通过生成的文件生成压缩包zip

        String demoName = "导出数据.zip";// 压缩包zipString zipPath = path + demoName;//包含zip文件的名称  生成的zip路径 不应该是打包路径的子路径ZipUtil.zip(path, zipPath, CharsetUtil.CHARSET_UTF_8, false);// path 要压缩的路径FileUtil.del(path);// 删除csv源文件  可以不删除//返回压缩包try {BufferedInputStream bis;OutputStream out = response.getOutputStream();response.setContentType("text/html; charset=UTF-8");//设置编码格式response.setContentType("application/octet-stream");// 设置contentyperesponse.setHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(URLEncoder.encode(space + "_" + randomNumbers + demoName, CharsetUtil.UTF_8))));// 设置返回文件名称bis = new BufferedInputStream(new FileInputStream(zipPath));//定义byte,长度就是要转成zip文件的byte长度,避免浪费资源byte[] buffer = new byte[bis.available()];bis.read(buffer);out.flush();out.write(buffer);} catch (IOException e) {e.printStackTrace();}

最终效果如下

打包文件zip压缩包返回相关推荐

  1. Java实现文件批量下载,打包成zip压缩包

       最近在做一个管理系统的项目,需要实现一个功能,就是批量下载文件,并打包成zip压缩包.    前端通过POST请求传来要下载的文件列表,Java代码实现如下: import java.io.Bu ...

  2. 使用filemanager-webpack-plugin将前端项目打包成zip压缩包

    使用filemanager-webpack-plugin插件将前端的dist目录打包成zip压缩包,省去手动压缩,进一步可以配合 idea 的Cloud Toolkit插件 或者jekenis进行自动 ...

  3. 批量下载文件,打包成zip压缩包

    批量下载文件,用程序打成zip压缩包在下载 前台传来要下载的url数组 @RequestMapping(value = "/download",method = RequestMe ...

  4. easyExcel导出excel文件并打包成zip压缩包下载

    文件导出 专栏收录该内容 2 篇文章0 订阅 订阅专栏 package com.business.testExcelPort; import java.io.BufferedInputStream; ...

  5. EasyExcel3.0.5 导出多个sheet,批量下载打包成ZIP压缩包

    多sheet导出并批量下载附件 前言 源码 代码实现 Controller 接口类 实现类 (重中之重) 实现类重点强调 测试 结语 前言 最近浏览语雀社区官网,里面有一篇 easyexcel 里面 ...

  6. java 导出表格打包zip文件下载_asyExcel导出excel并打包成zip压缩包下载

    假期期间自己在家撸码,刚好用到了导出,导出来之后是多个文件,所以需要打成压缩包并下载来给客户.查阅了一些资料,把这段代码贴在这,相当于有个记录吧. package com.business.testE ...

  7. 使用 easyExcel 生成多个 excel 并打包成zip压缩包

    前言: 最近项目有个需求,需要生成多个 excel 并打包成 zip下载:由于需要生成的 excel 头字段过多,这里有96个时间段的表头,如果建一个有96个字段的实体不太好,还好 easyExcel ...

  8. Java实现批量打包文件Zip下载(适用于Windows,Linux)

    前言 1.思路总结:      * 1.每个单号多个文件直接遍历IO临时单号zip包,      * 2.多个单号临时zip包遍历IO到总临时zip包,      * 3.总临时zip包copy到前端 ...

  9. 【Java】Java实现批量打包文件Zip下载

    有这样一个需求,需要将某个文件夹进行下载,而且该文件下包含多张图片,图片是存储于Linux服务器上的.故采用zip打包方式进行下载.在此并没有采用获取网络图片的方式进行下载,而是找到图片在服务器上存储 ...

最新文章

  1. 你还在new对象吗?Java8通用Builder了解一下?
  2. R语言ggplot2可视化图中添加希腊字母实战
  3. android视频录制(调用系统视频录制)
  4. 文巾解题 LCP 07. 传递信息
  5. Earth Mover's Distance (EMD)距离
  6. 使命召唤手游迎来欧阳娜娜,这阵容够豪华,玩家期待吗?
  7. 小黑小波比.Ubuntu下的截图
  8. Oracle树形结构查询之prior的理解
  9. linux网卡驱动 pdf,Linux下网卡驱动程序.pdf
  10. java 循环map 优雅写法_Java for循环Map集合优化实现解析
  11. 日均处理万亿数据!Flink在快手的应用实践与技术演进之路
  12. java ssm框架登录代码,求一个SSM框架登录功能的源码,要求能运行成功
  13. this is a test
  14. 百度地图集成Plist文件需要增加的字段
  15. 枚举smb共享期间出错_大量三星手机黑屏系统崩溃,客服:闰4月计算出错
  16. Windows server 2012 R2 搭建文件服务器(五):映射网络驱动器(图形和批处理)
  17. 公司邮箱地址格式是什么?邮箱地址怎么写?邮箱地址大全
  18. Windows Git 上传 报错 error: bad signature 0x00000000 fatal: index file corrupt
  19. spss modeler模型应用
  20. C++ 算术基本定理

热门文章

  1. VS2015实现bmp格式图片的读取
  2. CA认证及http实现方法
  3. 热门的网络营销需求人才
  4. “纸上得来终觉浅,觉知此事要躬行”——博客起始
  5. 【java】poi word模板生成报告后打不开问题
  6. 上班被监控屏幕和摄像头,拒绝就直接开除,员工起诉公司获赔52万元
  7. 2198: 小P当志愿者送餐
  8. 如何屏蔽掉某网址不能访问
  9. 爬取中国天气网的天气预报,可视化展示看着就是爽【python爬虫入门进阶】(06)
  10. ASCII2ChineseSheet