显式关闭FileInputStream

时间:2016-03-21 16:13:58

标签: java android fileinputstream

我正在使用BitmapFactory从文件中获取位图。 decodeStream中的第一个参数是一个流。我正在为它提供一个新的FileInputStream。我需要显式关闭流吗?这会导致内存泄漏吗?

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

也许应该是?:

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

我知道位图有漏洞的倾向,这个问题更多的是关于FileInputStream而不是位图。

1 个答案:

答案 0 :(得分:0)

是的,你需要关闭流。因为解码函数不知道没有更多的数据要写,所以它不会为你做。不这样做不太可能导致大量内存泄漏,但如果流被缓冲并且将使OS资源(文件句柄至少)未释放,则可能导致数据无法刷新到磁盘。