Является ли метод groovy.xml.XmlUtil.serialize ошибочным для потоковой передачи большого объема XML? - PullRequest
2 голосов
/ 07 октября 2009

Когда я выполняю следующий скрипт:

mb = new groovy.xml.StreamingMarkupBuilder()
mb.encoding = "UTF-8"
xmlClosure = {...} //BIG XML File building (at least 300 KB)

new OutputStreamWriter(new FileOutputStream(exportXmlFile), 'utf-8') << groovy.xml.XmlUtil.serialize(mb.bind(xmlClosure))

Файл экспорта XML урезан !!

Если вместо этого я выполню следующее:

new OutputStreamWriter(new FileOutputStream(exportXmlFile), 'utf-8') << mb.bind(xmlClosure)

Тогда полученный файл будет в ожидаемом формате, но не в формате xml.

Итак, мои вопросы:

1- Это ошибка для XmlUtil.serialize, имеющая дело с большой потоковой передачей XML, или мне нужно где-то настроить максимальный буфер?

2 - знаете ли вы обходной путь для xml-форматирования объекта StreamingMarkupBuilder? (примеры кода приветствуются)?

1 Ответ

1 голос
/ 28 сентября 2010

Вместо << в Writer, вы должны использовать метод File # withWriter (), чтобы убедиться, что Writer <b>закрыт правильно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...