【问题标题】:Do I have to close all resources every time I use them?每次使用资源时都必须关闭它们吗?
【发布时间】:2014-11-05 21:24:46
【问题描述】:

出于教学目的,我正在用 Java 编写一个聊天应用程序。当然,由于我不是经验丰富的程序员,我遇到了很多问题。

基本上我的问题是:我是否必须在使用后关闭每个资源(BufferedReader/Writer 等)?即使我知道我可能会重复使用它?

例如:等待用户输入文本的客户端,是可以复用同一个BufferedWriter还是每次用户输入时都要创建,然后再关闭?

【问题讨论】:

  • 关闭后无法使用。因此,如果要重复使用,请不要在每次使用时都关闭它。
  • 只有在您知道自己不会再使用资源时才关闭它们
  • 我会说“可能”不是保留资源的充分理由。如果你知道你会使用它,那么选择是显而易见的。您肯定不想关闭它只是为了立即或在不久的将来打开它。

标签: java resources network-programming


【解决方案1】:

如果您想多次检查同一个资源,只需在不再使用时将其关闭即可。为此,您可以使用try-with-resources

try (BufferedReader br = new BufferedReader(new FileReader(path))) {
    return br.readLine();
}
catch (IOException e) {...}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 2015-10-07
    • 2020-09-11
    • 1970-01-01
    相关资源
    最近更新 更多