我正在使用BitmapFactory从文件中获取位图。 decodeStream中的第一个参数是一个流。我正在为它提供一个新的FileInputStream。我需要显式关闭流吗?这会导致内存泄漏吗?
Bitmap bm = BitmapFactory.decodeStream(new FileInputStream(x))
也许应该是?:
FileInputStream fis = new FileInputStream(x);
Bitmap bm = BitmapFactory.decodeStream(fis);
fis.close();
我知道位图有漏洞的倾向,这个问题更多的是关于FileInputStream而不是位图。
答案 0 :(得分:0)
是的,你需要关闭流。因为解码函数不知道没有更多的数据要写,所以它不会为你做。不这样做不太可能导致大量内存泄漏,但如果流被缓冲并且将使OS资源(文件句柄至少)未释放,则可能导致数据无法刷新到磁盘。