IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Ajouter un objet dans un fichier


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 26
    Points
    26
    Par défaut Ajouter un objet dans un fichier
    Bonjour, je suis débutant en java et j'aimerais savoir comment ajouter un objet dans un fichier, c'est à dire que j'ai un fichier histo.txt dans lequel j'enregistre des objets, le problème est que j'appelle la méthode ecrire de la classe Fichier plusieurs fois, et à chaque fois que je l'appelle ça va me remplacer l'objet que j'ai déjà écrit précédemment.

    La méthode écrire contient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FileOutputStream ostream = new FileOutputStream(fp);
    ObjectOutputStream o = new ObjectOutputStream(ostream);
     
    o.writeObject(this);
     
    o.close();
    J'aimerais donc ajouter à la fin du fichier et non le remplacer, soit par une fonction pour me déplacer à la fin et écrire là, ou bien si il y a quelque chose à rajouter à writeObject (genre a en C), ce serait encore mieux

    Tant que j'y suis, lorsque je dois lire le contenu de ce fichier, y a-t-il un code de retour spécial de la fonction readObject() pour dire qu'on a atteint la fin de fichier, ou bien est-ce qu'on laisse ça se gérer avec les exceptions IOException et/ou ClassNotFoundException?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    Il te suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FileOutputStream ostream = new FileOutputStream(fp, true);
    Le true pour dire que tu veux ajouter a la fin du fichier.

    Pour les valeurs de retour ca depend de la classe que tu utilises pour lire ton fichier. Si tu utilises ObjectInputStream, la methode readObject ne renvoie rien de particulier si tu es a la fin de fichier, mais tu auras une bellle Exception : EOFException. Tu n'as qu'à la capturer pour savoir que ta lecture est terminé eventuellement.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Morgoth818 Voir le message
    Tant que j'y suis, lorsque je dois lire le contenu de ce fichier, y a-t-il un code de retour spécial de la fonction readObject() pour dire qu'on a atteint la fin de fichier, ou bien est-ce qu'on laisse ça se gérer avec les exceptions IOException et/ou ClassNotFoundException?

    Merci
    Sache que l'ObjectOutputStream forme un "tout", Ce tout peut être relu par la suite avec un ObjectInputStream. Si tu as utilisé 2 ObjectOutputStream pour écrire, tu va devoir générer à la lecture deux ObjectInputStream, un pour chaque "tout". Donc si tu veux écrire "n" objects dans un fichier, je te recommande de tout faire avec un seul ObjectOutputStream plutot que de jouer avec du append sur un fichier existant. De plus, ObjectOutputStream ne gère pas la fin de fichier, c'est à toi de savoir combien d'objets tu dois lire.

Discussions similaires

  1. Ajouter des objets dans un fichier deja existant
    Par schine dans le forum Persistance des données
    Réponses: 1
    Dernier message: 31/01/2013, 01h42
  2. Ecrire un objet dans un fichier
    Par mikebranque dans le forum C++
    Réponses: 3
    Dernier message: 14/03/2006, 13h39
  3. Existe il un moyen d'ajouter des commentaire dans un fichier
    Par Edoxituz dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 21/01/2006, 12h31
  4. Ajout de texte dans un fichier
    Par willowII dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 24/08/2004, 19h30
  5. [arbre] Sauvegarder un objet dans un fichier
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 00h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo