Опитвам се да използвам StaX API, за да създам някакъв XML, да го запазя във FileOutputStream и да поставя този поток в GZIPOutPutStream.
Очевидно обаче правя нещо нередно, защото следният код извежда повреден файл: hellow.xml.gz. Мога да отворя zip файла и да видя xml файла вътре. Въпреки това при извличане получавам грешка, че файлът е повреден.
Кодът работи само с файл, ако извеждам в текстов файл, вместо да се опитвам да архивирам файла с GZIPOutPutStream. Как да накарам xml да пише и компресира правилно в gzip?
public class Main {
public static void main(String[] args) throws XMLStreamException, IOException {
FileOutputStream outputStream = new FileOutputStream(new File("/home/user/hellow.xml.gz"));
GZIPOutputStream outputStreamZip = new GZIPOutputStream(outputStream);
XMLOutputFactory factory = XMLOutputFactory.newInstance();
XMLStreamWriter writer = factory.createXMLStreamWriter(outputStreamZip, "UTF-8");
writer.writeStartElement("WOOOOOOOOOOOOOOOOOOOOOOOOOOOOT");
writer.writeStartElement("Lookup_Value_Record");
writer.writeCharacters("Hello World");
writer.writeEndElement();
writer.writeEndElement();
writer.writeEndDocument();
writer.flush();
writer.close();
}
}