Quant je rajoute un objet a mon fichier.txt il ecrase l'ancien obj

Fermé
Chaima_0951 - Modifié le 7 mai 2020 à 08:59
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 7 mai 2020 à 13:28
Bonsoir!
je veux avoir un fichier qui contient plusieurs objets;mais dans mon cas j'ai toujours un seul,qui est le dernier objet ajouter
voici la méthode ajout_objet que j'utilise,

        void méthode_ajout_joueur_au_fichier(joueur j){
        try {
            FileOutputStream f = new FileOutputStream("Joueurs.txt");
            ObjectOutputStream o = new ObjectOutputStream(f);
        
            o.writeObject(j);
          
            o.close();
            f.close();
        }
        catch (FileNotFoundException e) { System.out.println("File not found"); }
        catch (IOException e) { System.out.println("Error initializing stream"); }
       }


je fait appel a cette méthode après chaque inscription effectuée
est ce que vous pouvez m'aider!

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
7 mai 2020 à 13:28
Bonjour,

Les ObjectOutputStream manipulent des objets en binaire, avec notamment des en-têtes lors de la sérialisation. Si tu ajoutes un objet à la fin, c'est à dire sans mettre à jour les en-têtes, le fichier sera impossible à lire car les données ne correspondront plus aux en-têtes.

Si tu veux modifier le fichier il faut réécrire tous les objets qu'il contient pour que les en-têtes soient cohérents.
0