Ecriture fichier java

kungouf Messages postés 29 Date d'inscription lundi 3 mai 2004 Statut Membre Dernière intervention 15 février 2005 - 6 déc. 2004 à 16:03
cs_Spawnrider Messages postés 254 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 9 avril 2007 - 7 déc. 2004 à 00:03
bonjour a tous

j'ai un souci dans l'ecriture dans un fichier (en l'occurrence xml ici) de mes infos stockes dans ma structure de donnee

j'utilise un ObjectOutputStream:

sortie = new ObjectOutputStream(
new FileOutputStream( nomDeFichier ) );

et une methode:

public void ecritureFichier(){
System.out.println("sauvegarde dans un fichier");

try {

sortie.flush();
sortie.writeObject("<?xml version="1.0" ?>\n");
sortie.writeObject("<!--fichier genere par SYNOXML V-1.0 -->\n");
sortie.writeObject("<Services xmlns="http://www.hp.com/OV/opcsvc">\n");

//Insertion du client
sortie.writeObject("<Service couche="client">\n");
sortie.writeObject(" <Label></Label>\n");
sortie.writeObject(" \n");
sortie.writeObject(" <Name>"+nomClient+"</Name>\n");
//insertion des fils du client - aka application
sortie.writeObject(" <Source>\n");
sortie.writeObject(" <Composition />\n");
sortie.writeObject(" <ServiceRef>"+nomApplication+"</ServiceRef>\n");

sortie.writeObject(" </Source>\n");
sortie.writeObject("</Service>\n");

//Insertion de l'application
sortie.writeObject("<Service couche ="application">\n");
sortie.writeObject(" <Label></Label>\n");
sortie.writeObject(" \n");
sortie.writeObject(" <Name>"+nomApplication+"</Name>\n");

//insertion des fils de l'application - aka les sous applications

for(int i= 0; i<tabSousApplication.size(); i++){

System.out.println(((SousApplication)tabSousApplication.get(i)).nomssAppli);

sortie.writeObject(" <Source>\n");
sortie.writeObject(" <Composition />\n");
sortie.writeObject(" <ServiceRef>"+((SousApplication)tabSousApplication.get(i)).nomssAppli+"</ServiceRef>\n");
sortie.writeObject(" </Source>\n");
}


sortie.writeObject("</Service>\n");

//Insertion des Sous Applications
sortie.writeObject("</Services>\n");
sortie.writeObject("<!-- end of file -->\n");
}
catch ( IOException e ) {
JOptionPane.showMessageDialog( this,
"Erreur d'ouverture de fichier", "Erreur",
JOptionPane.ERROR_MESSAGE );
}

}

voici mon output:

<?xml version="1.0" ?>
<!--fichier genere par SYNOXML V-0.5 -->
<Services xmlns="http://www.hp.com/OV/opcsvc">
<Service couche="client">
<Label></Label>

<Name>la poste</Name>
<Source>
<Composition />
<ServiceRef>partages</ServiceRef>
</Source>
</Service>
<Service couche ="application">
//tag absent dans le fichier <Label></Label>
//tag absent dans le fichier

<Name>partages</Name>
//tag absent dans le fichier <Source>
//tag absent dans le fichier<Composition />

<ServiceRef>partagev0</ServiceRef>

//tag absent dans le fichier </Source>

//tag absent dans le fichier <Source>
//tag absent dans le fichier<Composition />

<ServiceRef>partagev1</ServiceRef>
//tag absent dans le fichier </Source>

//tag absent dans le fichier </Service>

</Services>
<!-- end of file -->

donc 2 soucis:

-affichage de caracteres non voulu precedent les lignes du fichier(que je n'ai pas mis ici).pourtant j'ai fait un sortie.flush()

-des tags ne sont pas affiches malgre le traitement ecrit dans le source, pourtant l'execution de s'arrete pas puisque les tags de fin de fichiers sont affiches....curieux, je pense que c'est a cause de la boucle mais je ne vois pas le probleme

j'ai essaye d'ecrire avec les methodes writeChars et writeUTF
sans succes....

help.....

1 réponse

cs_Spawnrider Messages postés 254 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 9 avril 2007 1
7 déc. 2004 à 00:03
Salut kungouf ,
Utilise plutot un PrintWriter sur un FileWriter ....
et utilise la methode
write(String s);
ou
print(String s);
Dans le genre :
PrintWriter p = new PrintWriter(new FileWriter(nomdefichier);
p.print("coucou");
p.write("coucou");
p.close();

Enfin dans le genre ... c beaucoup mieux que d'ecrire par objet ...

Sur ce +++

##########################
# Alphaspawnrider@Yohann
# alphaspawnrider@hotmail.com
##########################
0
Rejoignez-nous
A voir également