ファイルを保存およびロードするJavaを使用したアプリケーションを作成しているため、ストリームを使用しています。ファイルからストリームを取得し、このストリームを使用して別のフォルダーに新しいファイルを作成します。問題は、ストリームを使用して閉じた後、解放されたはずのメモリがまだ残っていることです。
たとえば、100 mb のファイルをロードし (タスク マネージャーは、java.exe が 100 mb で増加していることを示しています)、そのファイルを別のフォルダーに保存し、stream.close() でストリームを閉じます。しかし、java.exe は 100MB 減りません。ファイルを数回保存してロードすると、java.exe が 600 MB を超えた後、300 MB に減少します。600MB を超えようとするたびに、300MB に減少します。どうしてこれなの?stream.close() を呼び出したときにメモリが 0mb にならないのはなぜですか? 約 600MB のメモリを解放し、すべてのメモリを解放しないのはなぜですか?
これは、文字列パスからストリームをロードしてストリームを閉じる方法です。
String path = ... //File path
InputStream stream = new BufferedInputStream(new FileInputStream(path));
stream.close();
返信ありがとうございます。