2016-09-26 71 views
-1

我写信给它后删除文件时出现问题。这是写作的到它的代码:我想删除它写入后无法删除文件

String xml = "blablaxml"; 
Path file = Paths.get("file.xml"); 
Files.write(file, xml.getBytes()); 

这里:

Files.deleteIfExists(file); 

错误:

java.nio.file.FileSystemException: file.xml: The process cannot access the file because it is being used by another process. 

我调试的代码,只是想删除之前我使用Microsoft Process Explorer的文件并没有被任何进程使用,所以我不明白这个错误。

+0

创建文件后,是否使用任何软件打开它? –

+0

如果您确实需要使用java.nio,那么使用同步模式进行写入。 'Files.write(file,xml.getBytes(),StandardOpenOption.SYNC);' –

+0

我没有用任何软件打开它,如果我使用StandardOpenOption.SYNC,我得到NoSuchFileException – Zbrana

回答

-1

错误消息很明显,您不能删除该文件,因为它被另一个进程或线程使用。确保在删除之前写完文件后关闭文件流。请参阅How to create a file and write to a file in Java?

+0

他使用java.nio。 –

+0

他可以在我的答案中看到链接,看看如何写入文件,否则关闭。 – cdaiga

+0

Downvoting,因为他已经完成了所链接文章的最佳答案中描述的内容,在标题'Java7 +用户 - 创建二进制文件' –