2014-11-05 36 views
2

我正在编写一个用于教学目的的Java聊天应用程序。当然,我遇到很多问题,因为我不是一个有经验的程序员。我每次使用它时都必须关闭所有资源吗?

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

例如:等待用户输入文本的客户端可以重复使用相同的BufferedWriter,或者每次用户输入内容并重新关闭时都必须创建它。

+3

关闭它后无法使用它。因此,如果您要重复使用它,请不要在每次使用它时关闭它。 – immibis 2014-11-05 21:25:30

+1

只有当你知道你不会再使用它们的时候才关闭你的资源 – 2014-11-05 21:26:46

+0

我会说“可能”并不是一个足够的理由来坚持资源。如果你知道*你会使用它,选择是显而易见的。你当然不想关闭它,只是为了立即打开或在不久的将来打开它。 – ChiefTwoPencils 2014-11-05 21:30:15

回答

1

如果您想多次检查同一个资源,只是在不再使用它的情况下对其进行分类。您可以使用try-with-resources达到此目的:

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