POI 导入导出时异常[java.io.IOException: Broken pipe]

使用用POI导出文件时抛出异常java.io.IOException: Broken pipe

ERROR:  'java.io.IOException: Broken pipe'
org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Fail to save: an error occurs while saving the package : The part /docProps/core.xml fail to be saved in the stream with marshaller org.apache.poi.openxml4j.opc.internal.marshallers.ZipPackagePropertiesMarshaller@783e76d

原因:输入流,输出流在使用之后(输入流用于构造函数,输出流用于写入数据),再使用同样的流做之前的事会报错(再使用输入流报错流为空,再使用输出流报错为 org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Fail to save: an error occurs while saving the package : The part /docProps/app.xml failed to be saved in the stream with marshaller org.apache.poi.openxml4j.opc.internal.marshallers.DefaultMarshaller@4bbfb90a)。所以对于同一个引用的流,在使用之后还想要继续使用的话,必须重新新建一个流对象

 

记得使用只用及时关闭 流。为了避免在特殊情况下导致流关闭失败,应该吧关闭流的操作放在finally代码块中

}finally {
            inputStream.close();
            ouputStream.close();
            workbook.close();
}

 

转载于:https://www.cnblogs.com/UncleWang001/p/9598597.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值