#java #xml #file
#java #xml #файл
Вопрос:
У меня есть фрагмент кода, который выглядит следующим образом
File file = null;
try {
file = new file (filePath);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
// Do Stuff
} finally {
if ( file.exists() ){
file.delete();
}
}
Однако, если при синтаксическом анализе xml возникает ошибка, файл не удаляется. Есть ли способ исправить это, чтобы гарантировать удаление файла?
Ответ №1:
Бьюсь об заклад, это под Windows.
В Windows вы не можете удалить открытый файл, и db.parse() открывает файл для чтения. Подумайте, можете ли вы передать InputStream, за закрытие которого вы несете ответственность, и затем вы сможете удалить файл.
Комментарии:
1. Это под Windows. И ваше предложение сработало. Теперь я передаю InputStream в db.parse(). Спасибо!
2. Для справки, я бы поместил удаление в блок try / catch, чтобы вы могли обрабатывать исключения
3. Не забудьте проверить значение, возвращаемое
delete()