close()
方法关闭java.io.InputStream
及其子类?对于
java.io.OutputStream
,例如FileOutputStream
,写入文件后如果不使用close()
关闭输出流,则我们想要写入文件的数据会留在缓冲区中,而没有被写入文件中。因此,关闭
OutputStream
是必要的。但是我从未经历过在不关闭InputStream
的情况下遇到任何糟糕的经历。但所有互联网文章和书籍都建议始终关闭任何类型的Stream,无论是
InputStream
还是OutputStream
。所以我的问题是,为什么需要关闭
InputStream
?人们说如果你不关闭它,你可能会遇到内存泄漏。那么这种内存泄漏是什么样的呢?
java.io.ByteArrayInputStream
不使用任何文件描述符,因此关闭它是一个无操作,参见 https://docs.oracle.com/javase/8/docs/api/java/io/ByteArrayInputStream.html#close-- - Guido Flohr