Java file delete and System.gc()

前端 未结 2 1633
一个人的身影
一个人的身影 2021-01-22 10:45

In my app I\'m writing a file to store some execution info and once the execution is done I want to delete the temp file. The issue is even after file close or flush by streams

相关标签:
2条回答
  • 2021-01-22 11:26

    What you want to use is File.createTempFile() and call deleteOnExit() on the resulting file. It will manage cleaning up the temp file at the end of execution for you. You shouldn't be doing this manually, let the system do this for you, that is why they included this in the standard library.

    Also you should always call .close() to make sure that all the data is flushed to the file and the handle can be cleaned up correctly.

    0 讨论(0)
  • 2021-01-22 11:44

    That seems to indicate that you did not call close().

    Reason: in the begin time of java, the Object.finalize() method was used to clean up on garbage collection, and for I/O it did a close().

    Until the file is in use (not closed), the file cannot be deleted on Windows.

    0 讨论(0)
提交回复
热议问题