xssfworkbook对象的write方法内会将传入的资源流自动关闭 导致下载excel失败

错误代码

outputstream out = response.getoutputstream();

zipoutputstream zos = new zipoutputstream(out);

xssfworkbook workbook = new xssfworkbook();

// 将文件写入zip内,即将文件进行打包

zos.putnextentry(new zipentry(filename + "(" + uuid.randomuuid() + ")." + typename));

// 此处将自动关闭zos资源

workbook.wirte(zos);

解决方法: 将xssfworkbook转换成bytearrayoutputstream,用bytearrayoutputstream对象将流写入zip对象中

outputstream out = response.getoutputstream();

zipoutputstream zos = new zipoutputstream(out);

xssfworkbook workbook = new xssfworkbook();

// 将文件写入zip内,即将文件进行打包

zos.putnextentry(new zipentry(filename + "(" + uuid.randomuuid() + ")." + typename));

bytearrayoutputstream bos = new bytearrayoutputstream();

workbook.write(bos);

bos.writeto(zos);

zos.closeentry();

// 当所有文件打包完成后关闭zos资源

zos.close();

希望与广大网友互动??

点此进行留言吧!

workbook对象需要关闭_XSSFWorkbook对象 进行zip打包时 用write资源流自动关闭处理办法...相关推荐

  1. 应用程序对象正在关闭_Windows核心编程-内核对象

    概念:内核对象可以供系统和应用程序使用来管理各种各样的资源,Windows程序员可以调用Windows API去创建.打开和操作各种内核对象.常见的内核对象有:访问令牌.事件对象.文件对象.文件映射对 ...

  2. .NET : 一定不要忘记关闭DataReader对象

    今天早上处理一个紧急的客户反应问题,这是去年开发的一套绩效考核系统.他们现在集团在推广使用,用户数多起来之后就发现某个页面响应速度非常慢,甚至会报告错误,无法完成操作. 经过检查,发现有一个方法用到了 ...

  3. java对象生命周期_Java对象生命周期和类生命周期

    原标题:Java对象生命周期和类生命周期 作者:彭空空 链接:https://www.jianshu.com/p/25ea857ba78b 导读 对象的生命周期 类的加载机制 类的生命周期 类加载器 ...

  4. ad09只在一定范围内查找相似对象_dxp查找相似对象

    (Edit→Find Similar Objects)=Shif+F 查找 相似对象 E+O+S(Edit→Origin→Set)设置坐标原点 E+S+N((Edit → Select → Net) ...

  5. JS-图片其他事件-Event对象-事件委托-DOM对象

    JS-图片其他事件-Event对象-事件委托-DOM对象 1 回顾 1. 事件回调函数中 this 的指向2. 鼠标事件click dblclick contextmenumouseenter mou ...

  6. 前端:JS/24/BOM和DOM简介,for...in循环遍历,window对象的属性和方法,延时器,定时器,screen屏幕对象,location地址栏对象,history历史记录对象

    BOM 和DOM简介 BOM ,Browser Object Model ,浏览器对象模型: BOM主要提供了访问和操作浏览器各组件的方式: 浏览器组件:window(浏览器容器), location ...

  7. java 九大内置对象_JSP九大内置对象(隐式对象)

    一.JSP内置对象简介 JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象. 开发者可以直接使用它们而不用显式声明.JSP隐式对象也被称为预定义变量. 1.JSP内置对象 ...

  8. c++ 返回空对象_python中file对象的常用方法

    open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError.(使用 open() 方法 ...

  9. js(JavaScript):面向对象,Document对象:查找元素对象,修改元素,事件

    面向对象编程 面向对象的编程,那么是更符合人类所接触的世界的逻辑思维. 将一个系统划分为各个子系统,子系统又由各个模块构成,将每个模块,系统划分为一个个对象,给这些对象赋予某些角色(属性/功能/方法) ...

最新文章

  1. Spark的transformation和action算子简介
  2. YZMCMS V5.3后台 SSRF
  3. 一位算法工程师从30+场秋招面试中总结出的超强面经——目标检测篇(含答案)
  4. php curl安装检查,如何判断php的curl是否已安装
  5. 7. Adapter
  6. 前端学习(594):network面板
  7. java Set无序集合 HashSet 的对象元素唯一性
  8. 去哪儿-19-detail-ajax
  9. 快手2021年营收810亿元 经调整净亏损188亿元
  10. CodeForces 622A--F - Infinite Sequence
  11. shell整理(34)===date 命令的小脚本
  12. edittext 点击区域外隐藏输入法
  13. linux文件映射mmap
  14. 内网渗透之信息收集(更新中)
  15. html5+ mui框架 微信授权登录无响应,不回跳APP
  16. 知乎App加密流量分析初探
  17. 图像语义分割python_图像语义分割 —利用Deeplab v3+训练VOC2012数据集
  18. 不想将就,所以竭尽所能。
  19. xshell进入桌面_xshell中启动linux图形界面
  20. java如何创建一个文本框_如何创建绑定到对象的文本框

热门文章

  1. windows7 删除hiberfil.sys文件的方法
  2. PHP5.3.8 + Mysql5.5.18 + Nginx1.1.8 安装使用感受
  3. 实现三元组表示的两个稀疏矩阵的加法_K-BERT | 基于知识图谱的语言表示模型
  4. python pca降维_机器学习的降维打击
  5. 成为中国特色项目经理,走上人生巅峰
  6. label qt 自动换行_QT编写一个登录界面
  7. Java bitset转string_将java BitSet保存到DB
  8. 字符串矩阵转换成长字符串_字符串矩阵
  9. kotlin 类和对象_Kotlin程序| 类和对象的示例(带有学生数据)
  10. 哪个计算机无法做到双屏显示,怎么启用双屏显示设置【图文介绍】