2016-03-21 35 views
0

我正在使用BitmapFactory從文件中獲取位圖。 decodeStream中的第一個參數是一個流。我提供了一個新的FileInputStream。我需要明確關閉流嗎?這可能導致內存泄漏?顯式關閉FileInputStream

Bitmap bm = BitmapFactory.decodeStream(new FileInputStream(x)) 

也許這應該是?:

FileInputStream fis = new FileInputStream(x); 
Bitmap bm = BitmapFactory.decodeStream(fis); 
fis.close(); 

我知道位圖必須是泄漏的傾向,這個問題更多的是FileInputStream中比位圖。

回答

0

是的,你需要關閉流。由於解碼函數不知道沒有更多的數據要寫入,所以它不會爲你做。不這樣做不可能導致大的內存泄漏,但是如果數據流被緩衝並且會釋放操作系統資源(文件句柄至少)未釋放,可能會導致數據不會被刷新到磁盤。