java - java file.delete() 返回 false,儘管 file.exists(), file.canRead(), file.canWrite(), file.canExecute() 所有 return true

  显示原文与译文双语对照的内容
144 2

我試圖在寫一個文件之後用寫一個文件。 這是我用於編寫的代碼:


private void writeContent(File file, String fileContent) {


 FileOutputStream to;


 try {


 to = new FileOutputStream(file);


 to.write(fileContent.getBytes());


 to.flush();


 to.close();


 } catch (FileNotFoundException e) {


//TODO Auto-generated catch block


 e.printStackTrace();


 } catch (IOException e) {


//TODO Auto-generated catch block


 e.printStackTrace();


 }


}



正如看到的,我刷新和關閉流,但當我嘗試 delete 時,file.delete() 返回 false 。

在刪除之前檢查了文件是否存在,以及: file.exists()file.canRead()file.canWrite()file.canExecute() 所有 return true 。 在調用這些方法之後,我嘗試 file.delete() 並返回 false 。

我是不是有什麼錯誤?

时间: 原作者:

52 5

另一個 Bug 在Java中,我很少找到它們,只是我第二年在。 這是我的解決方案,就像其他人所提到的。 我已經用了 System.gc() 。 但在我看來,這絕對是關鍵。 奇怪是的? !


finally


{


 try


 {


 in.close();


 in = null;


 out.flush();


 out.close();


 out = null;


 System.gc();


 }


 catch (IOException e)


 {


 logger.error(e.getMessage());


 e.printStackTrace();


 }


}



原作者:
...