Записать XML в ZIP ⇐ JAVA
-
Anonymous
Записать XML в ZIP
Я пытаюсь упаковать два XML-файла в zip-файл: XML-файлы генерируются с помощью org.w3c.dom.*, и я пытаюсь напрямую преобразовать их в ZipOutputStream. Пример одного файла:
public InputStream getStream() { попробуйте (окончательный ByteArrayOutputStream bos = новый ByteArrayOutputStream(); окончательный ZipOutputStream zos = новый ZipOutputStream(bos)) { вар zipEntry = новый ZipEntry("file1.xml"); zos.putNextEntry(zipEntry); окончательный документ document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); конечный элемент root = document.createElement("root"); document.appendChild(корень); окончательный источник DOMSource = новый DOMSource (документ); окончательный результат StreamResult = новый StreamResult(zos); окончательный TransformerFactory TransformerFactory = TransformerFactory.newInstance(); окончательный трансформатор Transformer = TransformerFactory.newTransformer(); Transformer.transform(источник, результат); вернуть новый ByteArrayInputStream(bos.toByteArray()); } catch (Исключение е) { } } окончательный ZipInputStream zis = новый ZipInputStream(getStream()); последняя запись ZipEntry = zis.getNextEntry(); AssertEquals("file1.xml", enter.getName());// все еще в порядке Final String xmlString = IOUtils.toString(zis);//выдает: неожиданный конец входного потока ZLIB AssertThat(xmlString, containsString("корень"); Есть идеи?
Я пытаюсь упаковать два XML-файла в zip-файл: XML-файлы генерируются с помощью org.w3c.dom.*, и я пытаюсь напрямую преобразовать их в ZipOutputStream. Пример одного файла:
public InputStream getStream() { попробуйте (окончательный ByteArrayOutputStream bos = новый ByteArrayOutputStream(); окончательный ZipOutputStream zos = новый ZipOutputStream(bos)) { вар zipEntry = новый ZipEntry("file1.xml"); zos.putNextEntry(zipEntry); окончательный документ document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); конечный элемент root = document.createElement("root"); document.appendChild(корень); окончательный источник DOMSource = новый DOMSource (документ); окончательный результат StreamResult = новый StreamResult(zos); окончательный TransformerFactory TransformerFactory = TransformerFactory.newInstance(); окончательный трансформатор Transformer = TransformerFactory.newTransformer(); Transformer.transform(источник, результат); вернуть новый ByteArrayInputStream(bos.toByteArray()); } catch (Исключение е) { } } окончательный ZipInputStream zis = новый ZipInputStream(getStream()); последняя запись ZipEntry = zis.getNextEntry(); AssertEquals("file1.xml", enter.getName());// все еще в порядке Final String xmlString = IOUtils.toString(zis);//выдает: неожиданный конец входного потока ZLIB AssertThat(xmlString, containsString("корень"); Есть идеи?
Мобильная версия