EasyExcel写数据到流中报错,can not close IO

这个方法的作用,是for循环遍历,用EasyExcel将数据库数据生成多个Excel,然后把它们放入压缩流中,再转成字节流返回

代码如下:

主要报错是说IO关不掉,然后是由空指针造成的,报错图在下面,这个for是三次循环,报错也是三次一样的,但是不影响功能的使用,并且tomcat服务器开启后,多次访问接口下的这个方法,只会在第一次出现报错,后面多次访问无异常

并且以上代码是我修改而来,将最上面的字节流替换为response.getOutPutStream不会有任何问题

这是会报错的代码:返回一个字节流

OutputStream outputStream = new ByteArrayOutputStream();

ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);

这是我自己替换前不会报错的代码:无返回值

OutputStream outputStream = response.getOutputStream();

ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream);

下面是具体报错,有3个一样的,这里截取一个,三个一样的是由于for循环执行了3次

我自己debug弄不明白,就想着有没有对IO流比较熟悉的大佬帮忙看看,万分感谢!!!

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

只是顺序不对吗?

你是不是在循环内部关闭了文件对象