Java 显式关闭FileInputStream

Java 显式关闭FileInputStream,java,android,fileinputstream,Java,Android,Fileinputstream,我正在使用BitmapFactory从文件中获取位图。decodeStream中的第一个参数是流。我为它提供了一个新的FileInputStream。我需要显式地关闭流吗?这会导致内存泄漏吗 Bitmap bm = BitmapFactory.decodeStream(new FileInputStream(x)) 也许应该是这样 FileInputStream fis = new FileInputStream(x); Bitmap bm = BitmapFactory.decodeStre

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

Bitmap bm = BitmapFactory.decodeStream(new FileInputStream(x))
也许应该是这样

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

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

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