Запись в XML файл происходит долго
Подскажите пожалуйста можно ли ускорить запись в XML файл, может быть есть другой способ записи, более быстрый?
public void test(List<Zapis> zapisList) {
try (FileOutputStream out = new FileOutputStream(AppConstants.filePath + "file.xml")) {
writeXML(out, zapisList);
} catch (XMLStreamException | IOException e) {
throw new RuntimeException(e);
}
}
Метод записи
private void writeXML(OutputStream outputStream, List<Zapis> zapisList) throws XMLStreamException {
XMLOutputFactory factory = XMLOutputFactory.newInstance();
XMLStreamWriter writer = factory.createXMLStreamWriter(outputStream);
writer.writeStartDocument("utf-8", "1.0");
writer.writeStartElement("zl_list");
Zglv zglv = new Zglv("1", "A", "1.14", UtilDate.getCurrentDate(), yearMonth);
WriteXmlSegments.writeZglv(writer, zglv);
for (Zapis zapis : zapisList) {
WriteXmlSegments.writeZapis(writer, zapis);
}
for (Vrachi vrachi : vrachiList) {
WriteXmlSegments.writeVrachi(writer, vrachi);
}
writer.writeEndElement();
writer.writeEndDocument();
writer.flush();
writer.close();
}
В классе WriteXmlSegments
тоже похожие методы, для записи сегментов. Если записей много (30000 тыс. например) долго идет запись.
Источник: Stack Overflow на русском