Я пытаюсь использовать StaX API для создания некоторого XML, сохранить его в FileOutputStream и поместить этот поток внутри GZIPOutPutStream.Zipping XML в 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();
}
}
Этот код не выводит .txt-файл. Я предлагаю вам не использовать код, который, как вы думаете, вы используете. – EJP
Вы, должно быть, были правы EJP, потому что, когда я запускаю его, теперь он выводит поврежденный файл gzip, а не текстовый файл. Я обновил вопрос, чтобы отразить это. – user2725919