我想使用 Java 的 try-with-resources 安全、完全地关闭多个流。我不知道我必须有多冗长。我想确保我的资源得到充分处置。我的代码是这样工作的:
JSONObject json;
URL url = new URL("http://example.com/api.json");
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.setRequestMethod("GET");
urlConn.connect();
try (InputStream is = urlConn.getInputStream()) {
try (InputStreamReader isr = new InputStreamReader(is)) {
StringBuilder sb = new StringBuilder();
try (BufferedReader reader = new BufferedReader(isr)) {
String inputStr;
while ((inputStr = reader.readLine()) != null)
sb.append(inputStr);
json = new JSONObject(sb.toString());
}
}
}
我想知道这是否是矫枉过正,如果我能做到这一点:
//...
urlConn.connect();
StringBuilder sb = new StringBuilder();
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(urlConn.getInputStream()))) {
String inputStr;
while ((inputStr = reader.readLine()) != null)
sb.append(inputStr);
json = new JSONObject(sb.toString());
}