Ecriture fichier xml: Problème de taille
Voilà je cherche à générer un fichier xml en interrogeant une base de données.
J'utilise jdom:
Code:
1 2
| //Le Document JDOM basé sur la racine
static org.jdom.Document document = new Document(racine); |
Je parcours ma base et j'ajoute les éléments:
Code:
1 2 3
| Element elIdReprise = new Element("id");
elIdReprise.setText(MonObjet.getId());
elReclamation.addContent(elIdReprise); |
Une fois tous les éléments parcourus en boucle, j'enregistre le xml:
Code:
1 2 3 4 5 6 7 8 9 10 11
| XMLOutputter aXMLOutputter = new XMLOutputter();
aXMLOutputter.setNewlines(true);
aXMLOutputter.setEncoding("ISO-8859-1");
//creation du fichier
File aFile = new File (aFileName);
if (aFile.exists())
aFile.delete();
FileWriter aFileWriter = new FileWriter(aFile);
aXMLOutputter.output(document, aFileWriter);
aFileWriter.close(); |
---------------------------------------------------------------
Tout fonctionne bien, sauf qu'avec beaucoup de données > 100 000 objets
, le traitement est vraiment trop long et il me provoque un out of memory lors de l'écriture du fichier qui devrai avoir une taille entre 100Mo - 200Mo
Voilà j'aimerais connaitre votre avis la dessus si vous avez une solution:
utiliser une autre api ?
J'ai regardé SAX mais j'ai du mal à trouver des tutoriels sur l'écriture de fichier xml.
Il y a aussi JAXP ou B mais je ne sais pas si c'est adapté à mon problème ?