Is it necessary to close an InputStreamReader in a BufferedReader
本问题已经有最佳答案,请猛点这里访问。
我们都知道,关闭代码末尾定义的所有StreamReader是一个好习惯。
现在我们可以看到两个Reader的定义如下。 BufferedReader和InputStreamReader.BufferedReader已关闭,但我们无法关闭InputStreamReader。
JAVA代码:
1 2 3 4 5 | BufferedReader in = new BufferedReader(new InputStreamReader( connection.getInputStream())); if (in != null) { in.close(); } |
问题出在这里,是否应该关闭括号中的InputStreamReader?这种代码会给程序带来一些问题吗?请告诉我,谢谢?
关闭您使用的任何资源很重要。
因此,假设在调用
为确保关闭它,无论使用什么
您可以这样做:
1 2 | try(BufferedReader in = new BufferedReader(new InputStreamReader( connection.getInputStream()))){/*code here*/} |
这样做没有问题,实际上Java API的
在这种情况下,
以这种方式使用