您的位置:首頁技術文章
文章詳情頁

Java的HttpURLConnecction的getInputStream是否需要close?

瀏覽:121日期:2024-01-27 14:46:43

問題描述

RT,就醬Java的HttpURLConnecction的getInputStream是否需要close?

這個流是否是系統維護的?因為不是我打開的

問題解答

回答1:

養成習慣所有不再用的InputStream和OutputStream都關掉就好了,不管API背后的實現有沒有自動幫你關掉。如果用Java 1.7+寫的話,用try-with-resource處理起來就非常簡單了:

try (InputStream in = urlConnection.getInputStream()) { ...} // 這里會自動調用 in.close();

類似場景還有:

JDBC的PreparedStatement、ResultSet等都實現了AutoCloseable接口,理論上只要Connection被close掉,由它生成的這些PreparedStatement、ResultSet等也會自動close掉,但強烈建議你產生這些資源的時候用try-with-resource來管理。

ServletRequest/ServletResponse中的getInputStream/getOutputStream等資源也是。

回答2:

需要

在并發操作非常高的情況下, 如果你不關閉, 對系統資源的開銷會比較大.

標簽: java
相關文章:
国产综合久久一区二区三区