使用try-with-resources安静地关闭资源

使用try-with-resources安静地关闭资源,第1张

使用try-with-resources安静地关闭资源

我在钱币开发邮件列表中找到了这个答案:http : //mail.openjdk.java.net/pipermail/coin-
dev/2009-April/001503.html

5. close方法的某些失败可以安全地忽略(例如,关闭已打开以供读取的文件)。 构造是否为此提供了条件?

不会。虽然此功能看起来很吸引人,但尚不清楚是否值得增加复杂性。实际上,这些“无害的异常”很少发生,因此,如果忽略这些异常,程序将不再健壮。如果您觉得必须忽略它们,则有一种解决方法,但这不是很漂亮:

static void copy(String src, String dest) throws IOException {    boolean done = false;    try (InputStream in = new FileInputStream(src)) {        try(OutputStream out = new FileOutputStream(dest)) { byte[] buf = new byte[8192]; int n; while ((n = in.read(buf)) >= 0)     out.write(buf, 0, n);        }        done = true;    } catch(IOException e) {        if (!done) throw e;    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5600660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存