java - 如何读取大文件并在最后释放内存?

标签 java file

我有一个“.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/

相关文章:

java - 使用多线程设置线程优先级没有效果

java - 将提供的 Maven 依赖项替换为本地类

java - 测量使用 Java 套接字传输文件时使用的带宽

image - 在 Gradle 中使用 Spock 测试创建的文件

java - 如何使用范围目录访问权限系统读取文件?

java - 套接字的输入流不可读

java - Android:以编程方式创建的VideoView显示黑屏

java - 添加 JSch 0.1.54 JAR 依赖到 IDE 工件生成

file - 使用 rsync 进行双向同步

c++ - 使用非阻塞 iNotify