Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ecrire dans un fichier texte

Sujet résolu
    12 novembre 2019 à 15:07:08

    Bonjour, ça fait 03 mois que j'ai debuté le Java. Je suis sur un projet où donné les details va perdre du temps mais je voudrais de l'aide sur un point.

    Pour ecrire dans un fichier texte voila comment je fais:

    try {
                FileWriter flux = new FileWriter("nomRecencés.txt", true);
                flux.write("Texte a ecrire");
                flux.close();
            }
            catch (IOException e) { System.out.print(e);}

    Mais je voudrais qu'a la place de flux.write, que le programme execute plutot cette fonction

        public void presentation(){
            System.out.print("\n" + this.nom + "\t" + this.prenom + "\t");
            this.d_naissance.affichage();
            System.out.print(" \t" + this.l_naissance);
        }

    Comme vous le voyez c'est un methode d'une classe Personne que j'ai cree qui sert a l'affichage des elements d'une personne.(La classe a trop de méthodes et je sais pas trop comment vous en dire plus dessus)

    Je veux qu'au moment de l'ecriture dans un fichier texte, mon programme execute presentation() dans le fichier au lieu de flux.write...

    J'attends vos reponses

    -
    Edité par Asmitta 12 novembre 2019 à 15:12:35

    • Partager sur Facebook
    • Partager sur Twitter
      12 novembre 2019 à 16:02:58

      Hello,

      Est-ce une vraie question? 

      la méthode Write attend une chaine de caractère...

      Ta classe personne contient les infos que tu veux ecrire dans un fichier...

      System.out.print attend une chaine de caractère...

      Tu ne vois vraiment pas ce qu'il faut que tu fasses?

      • Partager sur Facebook
      • Partager sur Twitter
      Un petit étudiant chinois perdu ^^'
        13 novembre 2019 à 0:22:10

        Ah je vois où tu veux en venir.

        Faire comme tu dis va  me faire creer des methodes (accesseurs) pour acceder a la date, nom et autres attributs de Personne.

        Mais je pense que j'ai pas le choix donc....

        • Partager sur Facebook
        • Partager sur Twitter
          14 novembre 2019 à 10:51:43

          J'ai récemment entendu parler du flux de type ObjectOutput/InputStream 

          Pensez-vous que je peux l'utiliser pour cela? Ça m'épargnerai surement un fichier trop long. Je veux des documentations a ce sujet svp.

          • Partager sur Facebook
          • Partager sur Twitter
            14 novembre 2019 à 14:32:49

            J'ai également un peu de mal à voir le soucis.

            Pourquoi tu ne fais pas simplement un truc comme :

            flux.write("\n" + this.nom + "\t" + this.prenom + "\t");
            flux.write(//ce que ta méthode this.d_naissance.affichage(); affiche);
            flux.write(" \t" + this.l_naissance);



            • Partager sur Facebook
            • Partager sur Twitter
              14 novembre 2019 à 18:16:09

              Dans le cours de java du site, j'ai trouvé des informations sur ce que je cherchais.

              Le code :

              try {          //  Enregistrement dans le fichier 'habitantsG.bin'...
                      FileWriter flux = new FileWriter("habitantsG.bin", true);
                      for (int c = 0; c < i; c++){
                          flux.write(hab[c].getNom() + "\t" + hab[c].getPrenom() + "\t" + hab[c].getNaissance()
                                  + "\t" + hab[c].getLieuNaissance() + "\n");
                          }
                      flux.close();
              } catch (IOException e) { System.out.print(e);}

              devient

              try {
                          FileOutputStream file = new FileOutputStream(new File("habitantsG.bin"));
                          ObjectOutputStream s_Save = new ObjectOutputStream(new BufferedOutputStream(file));
                          
                          for (int i = 0; i < lim; i++)
                              s_Save.writeObject(p[i]);
                          
                          System.out.println("Sauvegarde Terminée.");
                          s_Save.close();
                      } catch (FileNotFoundException e) {
                          System.err.print(e);
                      } catch (IOException e){
                          System.err.print(e);
                      }

              Et franchement, je trouve cela plus aisé pour la suite de mon programme....


              .

              -
              Edité par Asmitta 15 novembre 2019 à 7:49:10

              • Partager sur Facebook
              • Partager sur Twitter
                15 novembre 2019 à 9:39:05

                Si c'est effectivement ça que tu cherchais, alors tu n'étais pas très claire dans ta demande ^^
                • Partager sur Facebook
                • Partager sur Twitter
                  15 novembre 2019 à 9:50:32

                  Je dois avouer que ce n'est pas ce que je demandais au début.

                  Mais l'utilisation de ObjectOutputStream...me facilite beaucoup de choses du coup j'opte pour cela

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Ecrire dans un fichier texte

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown