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

Java Discussion :

Recuperer plusieurs objet stockés dans un fichier via ObjectInputStream


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2015
    Messages : 55
    Par défaut Recuperer plusieurs objet stockés dans un fichier via ObjectInputStream
    Bonjour,

    Je voudrais recuperer les objets stockés dans un fichier texte.
    Le script que j'ai fait ne recupere que le premier objet stocké dans le fichier, pas le reste.
    Savez vous comment faire svp ?

    Voici la classe objet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    import java.io.*;
    import java.util.*;
     
    public class FamilyMember implements Serializable {
     
    	String nom;
    	int age;
     
    	FamilyMember() {
    		Scanner lectureClavier = new Scanner(System.in);
    		System.out.println("Rentrer le nom de la personne");
    		nom = lectureClavier.next();
    		System.out.println("Rentrer l age de la personne");
    		age = lectureClavier.nextInt();
    	}
    	FamilyMember(String n,int a) {
    		nom = n;
    		age = a;
    	}
    	public void afficherMembreFamille() {
    		System.out.println(nom+" a "+age+" ans.");		
    	}
     
    }
    Et voici le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    import java.io.*;
     
    public class FamilyMgmt {
    	public static void main(String[] args) throws FileNotFoundException,IOException,ClassNotFoundException, StreamCorruptedException {
     
    		FamilyMember FM1 = new FamilyMember();
    		FamilyMember FM2 = new FamilyMember();
     
    		//Stocker dans fichier
     
    		ObjectOutputStream ofW = new ObjectOutputStream(new FileOutputStream("fileFamilyMembers.txt",true));
    		ofW.writeObject(FM1);
    		ofW.writeObject(FM2);
    		ofW.close();
     
    		//Obtenir le contenu du fichier
    		ObjectInputStream ofR = new ObjectInputStream(new FileInputStream("fileFamilyMembers.txt"));
     
    		try {
    			while (true) {
    				FamilyMember newFM = (FamilyMember) ofR.readObject();
    				newFM.afficherMembreFamille();
    			}
    		}
    		catch (Exception e) {
    			System.out.println("passe A");
    		}
     
    		try {
    			while (true) {
    				FamilyMember newFM = (FamilyMember) ofR.readObject();
    				newFM.afficherMembreFamille();
    			}
    		}
    		catch (Exception e) {
    			System.out.println("passe B");
    		}
     
     
     
     
    	}
     
    }
    Merci
    Cedric

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 104
    Par défaut
    Bizarre ici ça marche très bien.

    Nom : work.png
Affichages : 367
Taille : 3,9 Ko

    Par contre je ne comprends pas vraiment l'intérêt d'avoir 2 boucle while.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2015
    Messages : 55
    Par défaut
    est il possible que le probleme soit lié au fait que je passe par le command line pour executer le programme ?

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 104
    Par défaut
    Citation Envoyé par cedricleval Voir le message
    est il possible que le probleme soit lié au fait que je passe par le command line pour executer le programme ?
    Il n'y à, a priori, aucunes raisons. Ici ça marche, désolé de ne pas pouvoir t'en dire plus. (testé dans la console eclipse et en ligne de commande).

    Nom : AUCUNEIDEE.png
Affichages : 407
Taille : 9,7 Ko
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Je soupçonne que le problème soit dans le true de new FileOutputStream("fileFamilyMembers.txt",true) . Ca signifie que l'écriture dans le fichier commence à la fin du fichier existant, et non pas qu'il le réécrit depuis le début.

    Pour repartir du début, il faut donc effacer le fichier.

    Et vu que ça utilise la sérialisation native Java, on ne peut pas écrire le fichier en plusieurs fois. Bref, il faudrait enlever ce true qui est forcément faux. Puis réessayer du début.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2015
    Messages : 55
    Par défaut
    Merci Thelvin, tu as raison, en enlevant le true, ca marche correctement.

    Par contre, moi ce que je voudrais c'est bien stocker des objets en plusieurs fois dans un fichier. Pour pouvoir ensuite, ressortir ces objets.
    Est ce possible en Java ?

    Je me demande aussi comment ca peut marcher avec le true chez d'autres et pas chez moi... (wax78, tu peux bien confirmer stp que c'est le cas chez toi, tu avais laissé true ?)

    Merci
    Cedric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerShell] Rechercher via id un objet json dans un fichier
    Par Lekno dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 16/02/2020, 17h16
  2. Réponses: 3
    Dernier message: 12/11/2009, 15h26
  3. Recuperation d'une chaîne dans un fichier
    Par black is beautiful dans le forum Windows
    Réponses: 3
    Dernier message: 20/03/2006, 19h57
  4. Recuperation des objet ole dans une base SQL
    Par TOPGUN89 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 25/11/2005, 10h14
  5. execution d une requete stockée dans un fichier
    Par ghostdog dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/10/2005, 17h20

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