基本上我不太确定finally关键字的正确用法是什么,我只知道文本定义:保证代码将被执行,因为有时它不会。所以我希望我能得到一些关于这个特定代码的指示:
此外,如果调用 InputStream#close()
的 try-catch
block 是不必要的
try {
inputStream = entity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
String line = null;
while((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
responseText = sb.toString();
} catch(IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
最佳答案
您还可以使用try-with-resources 。
像这样:
try (YourResource resource) {
//Todo...
} catch(YourSpecificException ex) {
//Todo...
}
括号之间声明的资源将在退出构造时自动关闭。
您甚至可以一次性声明多个资源,并用分号分隔它们。实际上,这一切都在上面的链接中。
关于java - 在 InputStream#close() 上使用 finally 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21944180/