我想删除一个文件,有时可以,有时不能。我正在这样做:
String filePath = "C:\\Users\\User\\Desktop\\temp.xml";
File f = new File(filePath);
if (f.exists())
{
if(f.delete())
System.out.println("deleted");
else
System.out.println("not deleted");
}
我认为当我无法删除它时,是因为它仍然在应用程序中的某处打开。
但是,如果我不使用 FileInputStream
或 BufferedReader
,我怎样才能关闭它呢?因为如果我使用这些类,我将无法查看该文件是否存在。或者我可以吗?
编辑: 我刚刚发现我的错误。我正在这样做:
XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(new FileOutputStream(filePath));
然后,仅关闭 eventWriter
。
我必须这样做:
FileOutputStream fos = new FileOutputStream(filePath);
XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(fos);
然后:
eventWriter.close();
fos.close();
最佳答案
该文件可能被另一个进程打开,您可能没有足够的权限删除该文件,...
编辑:
我还强烈建议尽可能使用自动资源管理,以确保您的流/读取器/写入器正确关闭。
关于java - 在Java中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070179/