Чтобы использовать XMLStreamReader, я инициализирую его как -
XMLInputFactory f = XMLInputFactory.newInstance();
XMLStreamReader reader = f.createXMLStreamReader(new FileReader(
"somefile.xml"));
Итерирую как -
if (reader.hasNext()) {
reader.next();
// do something with xml data
}
Наконец закрываю как -
reader.close();
Это выглядит нормальным потоком, но я наблюдаю какое-то странное поведение. Даже после закрытия программы чтения ОС не позволяет мне удалять / перемещать XML-файл, если я не выйду из программы Java. При запуске на Win2k8-сервере я получаю сообщение об ошибке, в котором говорится, что java.exe использует этот XML-файл.
Итак, у меня есть пара вопросов -
Просматривая @ документацию по close () XMLStreamReader, я получаю следующее: «Освобождает все ресурсы, связанные с этим Reader. Почему это не закрывается функцией чтения close ()?