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();


 }


}



原作者:
...