gpt4 book ai didi

java - 如何关闭 IO?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:20:22 25 4
gpt4 key购买 nike

当我管理IO时,我发现了一个问题。我曾经像这样关闭它:

try {
// my code
} catch (Exception e) {
// my code
} finally{
if (is != null) {
is.close();
}
}

但是关闭方法也会抛出异常。如果我有多个 IO,我必须关闭所有的 IO。所以代码可能是这样的:

try {
// my code
} catch (Exception e) {
// my code
} finally{
if (is1 != null) {
is1.close();
}
if(is2 != null{
is2.close();
}
// many IOs
}

如果 is1.close() 抛出异常,is2、is3 不会自行关闭。所以我必须输入很多 try-catch-finally 来控制它们。有没有其他方法可以解决这个问题?

最佳答案

与其重新发明轮子,不如使用 Apache 中的 closeQuietly(...) 方法 IOUtils .这些方法会压缩 close() 发出的任何 IOException,并且还会处理参数为 null 的情况。

您唯一应该注意的是不要在具有未刷新数据的输出流上调用它。如果您这样做并且冲洗失败,您将不会听到它。如果您正在写入的数据很重要,那么不知道刷新失败将是一件坏事。

关于java - 如何关闭 IO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13226083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com