关于导出excel报错问题

img


这个流为啥要提前关闭,放到finally里面去关闭就会报错呢,标准情况下不都是放到finally里面去的吗

是要提倡放在finally里,这是对的。
你放进去报错了,有可能是你没有把
outputstream os 没有在try外面定义,
你现在是在里面定义,那os只能
在try包裹的区域能够使用,你需要
在finally里面关闭它,那你就
需要在try外面先定义它

outputstream os=null;
try{
.......
os=......
}catch(){

}finally{
      if(os!=null){
        os.close()
  }
}

望采纳哦!!!

这是作用域的问题,因为你的OutputStream定义在

try{}catch(){}

块中,那么这个OutputStream就只能在 try{}块中使用,而 finally 在 try 之外,所以才会出现OutputStream在 finally 中关闭是出现报错的问题;
虽然根据规范I/O资源释放应该放在 finally 中处理,但是也要看实际情况,

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^