Suppose I create a temporary file in Java with the method
File tmp = File.createTempFile(prefix, suffix);
If I do not explicity call the delete()
method, when will the file be deleted?
As an intuition, it might be when the JVM terminates, or earlier (by the Garbage Collector), or later (by some Operating System sweeping process).
The file won't be deleted automatically, from the JavaDoc:
This method provides only part of a temporary-file facility. To arrange for a file created by this method to be deleted automatically, use the deleteOnExit() method.
So you have to explicitly call deleteOnExit():
Requests that the file or directory denoted by this abstract pathname be deleted when the virtual machine terminates.