我正在尝试使用XML创建一些StaX,将其保存在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();
}
}发布于 2015-10-02 21:57:28
答案非常非常简单。我只需要关闭Gzip输出流。
outputStreamZip.close();https://stackoverflow.com/questions/32895180
复制相似问题