2016-09-26 4 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 + пользователи - создание двоичного файла» –

Смежные вопросы