从输入流中释放内存?

时间:2011-11-11 17:15:47

标签: java memory-management file-io

我对Java很陌生,所以请耐心等待......

我正在使用扫描仪阅读InputStream(即Class.class.getResourceAsStream("fileName.csv"))。当文件被读取时,内存开始大约44,000,当它完成读取时,它最多可达298,000。该类基本上读取inputStream并将数据放入某些ArrayLists,以便我可以快速搜索它们。问题是..一旦文件读完,我无法弄清楚如何让内存使用率下降。我已尝试设置object = null和/或调用System.gc() {这显然只是一个建议},但都不起作用。我对close()Scanner使用了InputStream方法,到目前为止还没有任何工作。有人有主意吗?我想我可能不知道我在说什么,这应该是怎么回事,但我很确定我做错了什么。

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用输入流完成后,您可以将其引用设置为null,这是您可以请求垃圾收集器释放未使用的内存的唯一方法,因为我们无法强制GC因此无法显式释放内存。