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 :

[ Vector Fichier ] Vector dans fichier texte


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut [ Vector Fichier ] Vector dans fichier texte
    Salut !

    Voila, je vous explique mon probleme.

    J'ai deux classes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Adherent extends Adherents implements Serializable
    {
    	String nom;
    	String prenom;
     
    	public Adherent(String nom, String prenom)
    	{
    		this.nom = nom;
    		this.prenom = prenom;
    	}
                    ....
    }
    et
    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
     
    public class Adherents
    {
    	protected Vector listeAdherents = new Vector(1);
    	public Adherents()
    	{
    	}
    ........
    public void sauvegarder()
    	{
    		try
    		{
    			FileOutputStream fos =
    				new FileOutputStream("Adherents.txt");
    			ObjectOutputStream oot = new ObjectOutputStream(fos);
    			for (int i = 0; i < this.listeAdherents.size(); i++)
    			{
    				oot.writeObject(this.listeAdherents);
    			}
    		}
    		catch (Exception e)
    		{
    			System.out.println(e);
    			e.printStackTrace();
    		}
    	}
    }
    Mon but est de sauvegarder dans un fichier texte le contenu de mon Vector ListeAdherents.

    Le fichier est bien généré, le résultat est dedans mais inexploitable car il rajoute plein de code java, voila un exemple de fichier de sortie:

    ¬í sr java.util.VectorÙ—}[€;¯ I capacityIncrementI elementCount[ elementDatat [Ljava/lang/Object;xp ur [Ljava.lang.Object;ÎXŸs)l xp sr premierpackage.AdherentOT·‹Mÿƒ L nomt Ljava/lang/String;L prenomq ~ xpt blatRaphsq ~ t TOTOt titiq ~ 

    Et oui c pas super lisible.

    J'ai essayé de faire un cast pour mettre en String mais il me jette !

    Avez-vous une idée ??






    [Modéré par Didier]
    Ajout de balises code pour la lisibilité
    Lire les règles du forum : Règles du forum Java

  2. #2
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonjour,

    Ben oui c'est normal que ce soit comme ça.

    C'est ton objet que tu as écris dans un fichier

    fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String toWrite = this.listeAdherents.toString();
    byte[] bytes toWrite.getBytes();
    tonFileOutputStream.write(bytes);
    voilà ton vetoeur est sous la forme d'un chaine.
    Par contre je ne sais pas ce que ca donne.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Merci de ton aide mais ca ne marche pas. Il me sort mes noms de package suivi de code genre "16fe55r" !!

  4. #4
    Membre actif
    Inscrit en
    Juillet 2003
    Messages
    407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 407
    Points : 252
    Points
    252
    Par défaut
    fais une petite boucle de ton vecteur et affiche son contenu

    si les contenu du vector sont de type string : essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String toWrite ; 
    for (int i=0 ; i<listeAdherents.size();i++)
    {
     toWrite  = this.listeAdherents.elementAt(i);
     tonFileOutputStream.write(toWrite); 
    // si tu veux sauter de ligne entre l'affichage 
     tonFileOutputStream.write('\n');
    }
    ;-) cordialement

  5. #5
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Si tu veux quelque chose de lisible, il ne faut pas que tu utilises la sérialisation comme tu as fait au debut.
    Par contre tu peux toujours écrire le contenu de ton vector dans un fichier.
    Afin que cela soit lisible. Il faut que tu redéfinisse la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String toString(){return nom + " " + prenom;}
    Afin que l'affichage suivant soit compréhensible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Adherent ad = new  Adherent("David", "Vincent");
    System.out.println(" " + ad + " les a vus");
    Là comme çà tu obtiens un objet compréhensible.
    Et ensuite tu fais comme on t'a dit une boucle sur ton vecteur et tu écris chaque objet sous forme de ligne dans ton fichier.
    Voili, voilou

    PS :
    Il me sort mes noms de package suivi de code genre "16fe55r" !!
    Cela correspond à la référence de ton objet en mémoire JAVA

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Ca marche !!!!

    Merci beaucoup pour votre aide

    Bye

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

Discussions similaires

  1. insertion de fichier module dans fichier principal
    Par le69 dans le forum VBA Word
    Réponses: 7
    Dernier message: 01/08/2010, 23h49
  2. Réponses: 5
    Dernier message: 15/10/2009, 19h59
  3. Réponses: 15
    Dernier message: 28/11/2008, 17h57
  4. Réponses: 4
    Dernier message: 30/05/2008, 01h27
  5. [Fichiers] écriture dans fichier
    Par kij dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 12/06/2007, 11h38

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