Удаление файла Java и System.gc ()

В моем приложении я пишу файл для хранения некоторой информации о выполнении, и после выполнения я хочу удалить временный файл. Проблема в том, что даже после закрытия файла или очистки потоков я не могу удалить файл. Я пытался

Thread.sleep(1000);
file.delete();

и это тоже не удаляло файл. Затем я создал цикл

while(!file.delete())
   Thread.sleep(1000);

и это было бесконечно. Затем я добавил

System.gc();
file.delete();

и это сработало !!!

Я проверил, что я изящно закрыл или очистил файл. Я хочу знать, почему мой код работал сSystem.gc()?

Ответы на вопрос(2)

Ваш ответ на вопрос