Java無法刪除被占用資源文件解決辦法(IO流的關閉)
最近在做一個upload文件的功能,先upload文件到一個臨時儲存的位置,等后續把文件成功上傳到server,並且讀取完文件里面的數據后需要把臨時儲存的文件刪除,但是使用file.delete()刪除文件有時候可以,有時候又不行。然后直接在文件夾中刪除文件也不行,刪除錯誤提示為:操作無法完成 因為文件已在 Java™ Platform SE binary 中打開。
出現該問題的原因是創建的IO流沒有正常的關閉,導致資源文件一直被占用!
創建的IO流沒有關閉就會導致文件一直被流持有,所以刪除不成功。
只要為創建的每一個IO流加上close方法就能正常使用,而且謹記:先創建的流最后關閉,且創建關閉一一對應。
說到這里,不得不提一點:
創建IO流如果不是特別需要,一般盡量不要使用“匿名內部類”來創建
使用IO流讀取文件,記得要在最后把流關閉了,不然會一直占着文件不放開,並且耗費資源。