2016-03-21 4 views
0

私はファイルからビットマップを取得するためにBitmapFactoryを使用しています。 decodeStreamの第1引数はストリームです。私は新しいFileInputStreamを提供しています。ストリームを明示的に閉じる必要がありますか?この結果、メモリリークが発生する可能性がありますか?明示的に閉じるFileInputStream

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

多分それは?:私はビットマップは、漏洩する傾向を持って知っている

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

する必要があり、この質問は、ビットマップよりもFileInputStreamの詳細です。

答えて

0

はい、ストリームを閉じる必要があります。デコード機能は、書き込むデータがそれ以上ないことを知らないので、あなたのためにはできません。そうしないと、大きなメモリリークが発生する可能性は低くなりますが、ストリームがバッファされている場合はデータがディスクにフラッシュされず、OSリソース(ファイルハンドルは最低限)は解放されません。

関連する問題