Я читаю XML-файл, обрабатываю элементы и записываю другой XML-файл с элементами, извлеченными из входного файла. Для этого я использую курсор StAX: я читаю элементы с XMLStreamReader и пишу элементы в другом файле с помощью XMLStreamWriter.Удалить XML-входной файл Java
Читатель:
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLStreamReader streamReader = inputFactory.createXMLStreamReader(new FileReader(inputFile));
Автор:
XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
XMLStreamWriter streamWriter = outputFactory.createXMLStreamWriter(new FileOutputStream (outputFile),"UTF-8");
После того как я закончить обработку и запись выходного файла, я хочу, чтобы удалить файл, который я прочитал (входной файл). Для этого я использую:
public void deleteInputFile(String inputFile) {
File fileToDelete = new File(inputFile);
if(fileToDelete.delete()){
System.out.println(fileToDelete.getName() + " is deleted!");
}else{
System.out.println("Delete operation is failed.");
}
}
Вся программа работает нормально, но исключение исключается. Получаю ответ:
Операция удаления не удалась.
Я думаю, что читатель закрывает входной файл после его чтения.
Вопрос в том, что showld я делаю, чтобы удалить входной файл после записи файла, который мне нужен?
Попробуйте закрыть FileReader? – dnault
@dnault закрытие потока просто прекращает операцию чтения или записи, но не относится к файлу –
, убедитесь, что 'streamReader' /' streamWriter' закрыты –