Réponse acceptée !
je voulais publier un code à ce sujet mais les classes sont bcp trop volumineuse enfait j'ai utilisé un projet déja publié nomé Xstream.
voici une partie du code permettant de generer un fichier xml.
// des imports utils pour la serialisation xml
import com.thoughtworks.xstream.XStream;
// import pour les entrées sorties du fichier
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.ObjectInputStream;
import java.io.BufferedReader;
// import des classes noyau en l'occurence : personne et groupe
import noyau.*;
public class Main
{
UnePersonne laFille,leGarcon;
UnGroupe leGroupe;
XStream leFlux;
FileOutputStream leFichier;
PrintStream lEcrivain;
FileInputStream leFile;
public static void main(String[] args)
{
new Main();
}
public Main()
{
laFille = new UnePersonne("GuGu");
leGarcon = new UnePersonne("Adnane");
// initialisation du flux xstream
leFlux = new XStream();
// mise en place des alias de chaque classe ( les balises )
leFlux.alias("personne",UnePersonne.class);
leFlux.alias("groupe",UnGroupe.class);
// regrouper les personnes dans un groupe
leGroupe = new UnGroupe();
leGroupe.ajouter(laFille);
leGroupe.ajouter(leGarcon);
// serialisation : le résulat est un string qui sera ensuite enregistré sur fichier
// on peut s'arreter ici et mettre un system.out.println pour afficher le resultat
String laChaine = leFlux.toXML(leGroupe);
// récuperation des données serialisées ( sans lecture du fichier )
leGroupe = (UnGroupe) leFlux.fromXML(laChaine);
// reserialisation afin des les afficher :D
laChaine = leFlux.toXML(leGroupe);
// ecriture sur fichier
try
{
leFichier = new FileOutputStream("laListe.xml",true);
lEcrivain = new PrintStream(leFichier);
lEcrivain.println(laChaine);
lEcrivain.close();
}
catch(Exception e)
{
e.printStackTrace();
}
// lecture apartir du fichier
try
{
BufferedReader leTampon = new BufferedReader(new FileReader("laListe.xml"));
laChaine = leTampon.readLine();
String laTmp ="";
laTmp = laChaine+'\n';
while(leTampon.ready())
{
laChaine = leTampon.readLine();
laTmp += laChaine+'\n';
}
System.out.println(laTmp);
leGroupe = (UnGroupe)leFlux.fromXML(laTmp);
String uneChaine = leFlux.toXML(leGroupe);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
j'espere que le code est assez claire, franchement je prefere cette méthode aux autres utilisant le Sax le jdom et d'autres package.