文章詳情頁
Java的HttpURLConnecction的getInputStream是否需要close?
瀏覽:108日期: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
相關文章:
1. javascript - webpack 報錯 新人 求解2. nginx 80端口反向代理多個域名,怎樣隱藏端口的?3. angular.js - 關于ng-model和ng-bind的疑問4. node.js - 跑antd的的模板例子!想修改端口,怎么修改呢!!(里面好像用了什么dora插件!!!)5. windows-7 - Wamp集成環境Apache無法啟動6. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)7. angular.js - angular做點擊購買時的遮罩層8. 關于thinkphp 5.1中,ajax提交數據url的格式寫法,加花括號就出錯,請老師指點9. 有大佬知道這種接口文件怎么使用嗎?10. tp5 不同控制器中的變量調用問題
排行榜
