Compresser un stream avec ZipOutPutStream
Bonjour,
je cherche à faire un programme qui crée un fichier xml avec DocumentBuilder Transformer, StreamResult et DOMSource. ce fichier doit ensuite être compréssé en zip et envoyé vers une base de donnée (donc le fichier reste sous forme de stream).
Voici la parti du code intéressante avant que je n'essaye de zipper :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.setOutputProperties(outFormat);
OutputStream output = new ByteArrayOutputStream();
DOMSource domSource = new DOMSource(document.getDocumentElement());
StreamResult result = new StreamResult(output);
transformer.transform(domSource, result);
Log.i("xml : ", output.toString()); |
Cela fonctionne et donne la sortie suivante dans le logcat :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <?xml version="1.0" encoding="UTF-8"?><catalog journal="Oracle Magazine" publisher="Oracle Publishing">
3680 xml : I <article>
3680 xml : I <edition>Sept-Oct 2005</edition>
3680 xml : I <title>Creating Search Pages</title>
3680 xml : I <author>Steve Muench</author>
3680 xml : I </article>
3680 xml : I <article>
3680 xml : I <edition>November - December 2010</edition>
3680 xml : I <title>Agile Enterprise Architecture</title>
3680 xml : I <author>Bob Rhubart</author>
3680 xml : I </article>
3680 xml : I </catalog> |
Maintenant avec le zip :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| TransformerFactory factory = TransformerFactory.newInstance();
transformer.setOutputProperties(outFormat);
OutputStream output = new ByteArrayOutputStream();
ZipOutputStream lZipOut = new ZipOutputStream(output);
ZipEntry lEntry = new ZipEntry("content");
lZipOut.putNextEntry(lEntry);
DOMSource domSource = new DOMSource(document.getDocumentElement());
StreamResult result = new StreamResult(lZipOut);
transformer.transform(domSource, result);
Log.i("xml : ", output.toString()); |
La sortie donne ça quelque soit le xml : "PK½ï¿½ï¿½ï¿½ï����content"
C'est donc faux...
Comment dois-je faire pour zipper le stream dans mon cas? et comment vérifier que le zip obtenu est correct ?