32
私はHttpURLConnection + InputStreamを使用し、使用後にそれらを閉じる(または閉じない)多くの異なる例を見てきました。これは、エラーがあるかどうかに関係なく、すべてが終了した後に閉じられることを確認するために私が思いついたものです。これは有効です?:URLConnectionとInputStreamを正しく閉じますか?
HttpURLConnection conn = null;
InputStream is = null;
try {
URL url = new URL("http://example.com");
// (set connection and read timeouts on the connection)
conn = (HttpURLConnection)url.openConnection();
is = new BufferedInputStream(conn.getInputStream());
doSomethingWithInputStream(is);
} catch (Exception ex) {
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
if (conn != null) {
conn.disconnect();
}
}
おかげ
あなたもそうsetConnectTimeoutとsetReadTimeoutにしたいですサーバーが使用できないか、読み取りエラーが発生した場合、接続は永遠にロックされません。 –
@metalideath - 確かに、簡潔にするためにそれらを省略しました。誰かがコピー/ペーストとして使用する場合の例でノートを追加します。 – user291701
@metalideath:あなたと同意しました...ここで私はちょうど質問ごとに答えました...この世界には多くのことがあり、私たちはそれを探求しなければなりません... –