我正在使用Java开发一个文件读取和保存的应用程序,因此我使用流(streams)来实现。首先从文件中获取一个stream,然后使用这个stream在另一个文件夹中创建一个新文件。问题是,在使用完stream并关闭它之后,应该释放的内存仍然存在。
例如,我加载了一个100MB的文件(任务管理器显示java.exe增加了100MB),然后将文件保存到另一个文件夹,并使用stream.close()关闭流。但是,java.exe没有减少100MB。当我多次保存和加载文件时,java.exe超过600MB,然后降至300MB左右。每次接近600MB时就会降到300MB。为什么会出现这种情况?为什么在调用stream.close()时不能将内存归零?为什么只有在接近600MB时才释放内存,而且不会释放所有内存?
以下是我如何从字符串路径加载流并关闭流的示例:
感谢您的回复。
例如,我加载了一个100MB的文件(任务管理器显示java.exe增加了100MB),然后将文件保存到另一个文件夹,并使用stream.close()关闭流。但是,java.exe没有减少100MB。当我多次保存和加载文件时,java.exe超过600MB,然后降至300MB左右。每次接近600MB时就会降到300MB。为什么会出现这种情况?为什么在调用stream.close()时不能将内存归零?为什么只有在接近600MB时才释放内存,而且不会释放所有内存?
以下是我如何从字符串路径加载流并关闭流的示例:
String path = ... //File path
InputStream stream = new BufferedInputStream(new FileInputStream(path));
stream.close();
感谢您的回复。