我正在使用 Java 制作一个保存和加载文件的应用程序,所以我使用的是流。我从一个文件中获取一个流,然后我使用这个流在另一个文件夹中创建一个新文件。问题是,在使用流并关闭它之后,应该释放的内存仍然存在。
例如,我加载了一个 100mb 的文件(任务管理器显示 java.exe 增加了 100mb),然后我将文件保存在另一个文件夹中并使用 stream.close() 关闭流。但是 java.exe 不会减少 100mb。当我多次保存和加载文件时,java.exe 超过 600mb,然后减少到 300mb。每次即将超过 600mb 时,它都会减少到 300mb。为什么是这样?为什么我调用 stream.close() 时内存不能达到 0mb?为什么它在大约 600mb 时释放内存,并且没有释放所有内存?
这就是我从字符串路径加载流然后关闭流的方式:
String path = ... //File path
InputStream stream = new BufferedInputStream(new FileInputStream(path));
stream.close();
感谢您的回复。