【发布时间】:2013-05-30 16:50:47
【问题描述】:
当我们需要关闭一个输出流时,我们有两个选择。
-
closeQuietly 意味着关闭一个流而不抛出异常。
try { close(out) } catch(IOException e) { } -
关闭
try { close(out) } catch(IOException e) { throw anException; }
众所周知,输出流在关闭时会将一个/几个字符写入文件末尾,如果这些写入出错,文件也无法正确打开,例如ZipoutputStream。
如果我使用第一个,我会有一些关闭失败的风险。 如果我使用第二个,它会让我的代码不友好。
有人可以给我一些建议吗?
很抱歉您描述的不清楚。
我的意思是如何安全地进行 IO 操作。如果资源释放失败,它会通知调用者。
感谢您的所有回答。特别感谢@Don Roby 给我一个链接,其中包含@Fabian Barney 回答的最佳答案
【问题讨论】:
-
catch(IOException e) { throw anException; }毫无意义 - 你需要声明throws IOException才能做到这一点,所以你不妨跳过 try/catch
标签: java outputstream