Help serialisation SVP

Résolu
Signaler
Messages postés
14
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
26 janvier 2010
-
Messages postés
14
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
26 janvier 2010
-
bonjour à tous,

je reposte ma question différement car je ne trouve vraiment pas la solution et mon Anglais est certainement plus approximatif que je ne le croyais.

Donc, j'arrive maintenant à sérialiser une arraylist, et je crée bien un fichier .dat contenant mes infos mais quand je relance mon programme, il repart systématiquement d'un .dat vierge.

Je suis sûr que c'est tout bête j'ai même essayé d'enlever le 'flush' croyant que c'était lui mais rien n'y fait et dans google je ne trouve pas les bons termes pour poster une question qui renvoie une réponse.

merci d'avance donc à quiconque me mettre sur la bonne voie.
Didier.

4 réponses

Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

ton problème c'est :
- Le fichier est écrasé à chaque démarrage ? assure toi de pas avoir mit la sérialisation des que l'application démarre.
- Le fichier commence à l'offset 0 et tu voudrais commencer de la fin ? change le new FileOutputStream(new File("barre.dat")) par new FileOutputStream(new File("barre.dat"), true)
- autre ? précise plus stp



------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
30
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
4 janvier 2011

Vérifie que tu fermes bien ton BufferedWriter à la fin de ta méthode :

tonFichier.close();


sidus
Messages postés
14
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
26 janvier 2010

merci Sidus d'avoir jeté un œil à ma requête, voici mon bloc de sérialisation, j'ai essayé avec ou sans flush, mais toujours avec close mais il repart toujours de zéro si je quitte et relance le programme, comme si le "new.file" était de trop...
bref, j'ai toujours pas trouvé.
Didier

/*
* BLOC DE SERIALISATION
*/

// déclaration pour sérialisation.

ObjectInputStream ois;
ObjectOutputStream oos;

//AddActionCopySerialisable maSerialization = new AddActionCopySerialisable();

try {

oos = new ObjectOutputStream(new BufferedOutputStream (new FileOutputStream(new File("barre.dat"))));

//Nous allons écrire chaque objet al de l'arraylist dans le fichier

Object o = al;
oos.writeObject(o);

System.out.println(" ===> oos vient d'être renseigné dans le flux" + o);


// methode pour vider le cache si besoin


//NE PAS OUBLIER DE FERMER LE FLUX ! ! !
oos.flush();
oos.close();


// FIN DE SERIALISATION
Messages postés
14
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
26 janvier 2010

Merci beaucoup pour cette piste,
en effet je crois qu'il faut que je commence d'abord à désérialiser mon fichier et/ou le créer s'il n'existe pas.
car mon souhait est de ne surtout pas repartir d'un fichier vierge mais bien d'un fichier qui évolue.
je me suis inspiré de tout les tutos qui parlent de sérialisation mais je n'en ai trouvé aucun qui parle de ce cas, c'est à dire une liste qui est saisie par l'utilisateur par des jtexfield.
je vais m'atteler à la tâche, je crois que tu m'as vraiment mis sur la bonne voie.
encore merci.
Didier.