InputStream中我使用它使用org.apache.commons.io.IOUtils
給定InputStream
複製到FileOutputStream
以創造一個File
上How to convert InputStream to virtual File答案。我應該關閉的org.apache.commons.io.IOUtils
我應該關閉InputStream
嗎?
InputStream中我使用它使用org.apache.commons.io.IOUtils
給定InputStream
複製到FileOutputStream
以創造一個File
上How to convert InputStream to virtual File答案。我應該關閉的org.apache.commons.io.IOUtils
我應該關閉InputStream
嗎?
編輯:再次讀取的問題後,我必須糾正我的答案,因爲這個問題顯然是關於InputStream
從參考答案,而不是OutputStream
。需要關閉InputStream
(請參閱@Adi的答案)。然而,OutputStream
在try-with-resources聲明中,所以這是您不需要關閉的那個。
問題中引用的答案是使用Java 7 try-with-resources Statement,它確保資源在語句結束時關閉。
try-with-resources語句是聲明一個 或更多資源的try語句。資源是在程序完成後必須關閉的對象。 try-with-resources語句 可確保在語句結束時關閉每個資源。
所以對於OutputStream
,NO,在特定情況下,你不需要自己關閉OutputStream
,只要你是使用try-與資源。
InputStream
但是需要關閉。
無需關閉輸入流,我們明確地必須關閉輸出流,如果您想關閉輸出流,您能否提供您面臨的問題? –
我沒有遇到任何問題。我總是遇到問題,無法理解什麼時候以及爲什麼要關閉流。我看到了在不關閉InputStream的情況下將InputStream轉換爲虛擬文件的代碼片段。所以我在考慮是否需要關閉它。 – ilopezluna
經過重新考慮之後,我認爲我們應該關閉它,因爲它將包含指向我們文件的指針/句柄,直到讀取了文件內容的偏移和其他相關信息。如果我們關閉它,那麼我們就可以高效地發佈資源創建計劃。 –