我有一个“.txt”文件,大小为 6.29mb,行数为 11234。
我尝试用java读取该文件。
使用此代码:
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line;
while( (line=br.readLine()) != null ){
}
br.close();
fis.close();
这样就快了,
但问题是,当它运行时,它需要大约 700mb 的内存
什么时候
BufferedReader 已关闭,我的 java 程序仍然需要 ~700mb
我不明白为什么?
清除内存的解决方案是什么?
请帮忙。
谢谢。
最佳答案
JVM 在请求内存后不一定将其释放回操作系统。它可以快速扩展以满足您的需求,直至达到允许的最大值。一旦有了内存,它往往会保留很长时间。即使您的程序现在仅使用了 50MB,JVM 仍将保留其余 650MB。
关于java - 如何读取大文件并在最后释放内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820320/