Convertir un flux xml en binaire
Bonjour à tous,
Dans le cadre du projet sur lequel je travaille nous avons un besoin bien particulier.
Nous avons un objet JAXB que nous souhaitons proposer au téléchargement sous forme de flux XML "non lisible" par l'utilisateur qui télécharge ce fichier.
L'idée est donc de convertir le fichier XML généré en fichier binaire.
Le problème est le suivant : je n'ai pas trouvé de méthode pour "convertir" en binaire un flux XML.
Voici le genre de choses que j'ai essayé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| //Objet métier 'JAXBifié'
final DAT Dat = oFactory.createDAT();
//...Quelques traitements
//Et puis le traitement xmlToFile et la tentative de conversion
final ParserDat myParser = new ParserDat();
final StringWriter w = new StringWriter();
final StringOutputStream fops = new StringOutputStream(w);
myParser.xmlToFile(Dat, fops);
System.out.print(w.getBuffer());final FileOutputStream fos = new FileOutputStream(new File("c:/myDev/toto"));
final DataOutputStream dos = new DataOutputStream(fos);
dos.write(w.getBuffer().toString().getBytes());
dos.flush();
dos.close(); |
Mais dans le fichier généré "c:/myDev/toto" je me retrouve avec le doc XML "en clair"
Bref si vous avez une idée je suis preneur
Merci d'avance
Finalement j'ai fait ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| final ParserDat myParser = new ParserDat();
final StringWriter w = new StringWriter();
final StringOutputStream fops = new StringOutputStream(w);
myParser.xmlToFile(Dat, fops);
System.out.print(w.getBuffer());
final FileOutputStream fos = new FileOutputStream(new File("c:/myDev/toto"));
final DataOutputStream dos = new DataOutputStream(fos);
// final BufferedOutputStream bos = new BufferedOutputStream(fos);
// final ObjectOutputStream oos = new ObjectOutputStream(fos);
final byte[] myTab = org.bouncycastle.util.encoders.Base64.encode(w.getBuffer().toString().getBytes());
dos.write(myTab);
dos.flush();
dos.close(); |