Partage
  • Partager sur Facebook
  • Partager sur Twitter

Écrire dans un fichier texte

Sujet résolu
    2 décembre 2008 à 23:45:41

    Bonjour,

    Voila mon problème. J'ai une méthode qui me permet de stocker des informations sur plusieurs véhicules dans un fichier texte. Voici le code (j'ai omis la gestion des exceptions pour alléger la présentation):

    public static void stockerDansFichier ( Vehicule[] tab, String nomFic ) throws IOException {
             PrintWriter out = new PrintWriter( new FileWriter( nomFic ) );
             
             for ( int i = 0; i < tab.length; i++ ) {
                 out.println( tab[i] );
             }         
             out.close();           
        } // stockerDansFichier
    


    Dans ma classe véhicule, j'ai redéfini la méthode toString() comme ceci :

    public String toString () {
            
            String cat;
            String estVendu;
            
            if ( this.cat == 1 )
                cat = "Terrestre";
            else if ( this.cat == 2 )
                cat = "Aquatique";
            else if (this.cat == 3 )
                cat = "Aérien";
            else
                cat = "Non classifié";
            
            if ( this.estVendu == true )
                estVendu = "Vendu";
            else
                estVendu = "Disponible";
                            
            return "Véhicule no. " + this.num + "\n  Catégorie : " + cat
                   + "\n  Description : " + this.desc + "\n  Vendeur : "
                   + this.vendeur + "\n  Prix : " + this.prix
                   + "$\n  Disponibilité : " + estVendu + "\n\n";               
        } // toString
    


    Mon problème est que quand j'écris les informations dans le fichier texte, tout s'écrit sur une seul ligne, il ne tient pas compte de "\n". Si quelqu'un pourrait m'aider à résoudre ce petit problème :)

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      3 décembre 2008 à 8:49:31

      Tu as essayé avec \r\n à la place de \n ? Ca peut résoudre ton problème notamment sous windows.
      • Partager sur Facebook
      • Partager sur Twitter
        3 décembre 2008 à 15:26:16

        Merci ça marche :) mais au fait, à quoi sert le \r ?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          3 décembre 2008 à 15:46:11

          C'est un héritage des vieilles machines à écrire.

          Le "\r" c'est pour retour chariot.
          Le "\n" c'est pour nouvelle ligne.
          • Partager sur Facebook
          • Partager sur Twitter
            3 décembre 2008 à 17:58:27

            LE saut de ligne a été défini différemment selon le système.
            Sous UNIX et donc linux, on l'a défini comme étant le caractère ASCII 10, alias \n
            Sous mac, on l'a défini comme ASCII 13, alias \r
            Sous DOS et windows, on l'a défini comme ASCII 13 suivi de ASCII 10, alias \r + \n.

            UNIX est capable de comprendre les sauts de ligne à la windows. Par contre, si windows rencontre un des deux caractères tout seul, il ne sait pas quoi en faire. Donc il affiche un truc bizarroïde.

            A noter que certains programmes et certaines API savent faire la traduction automatique \n => \r\n au moment où ils lisent le fichier. P.ex. notepad++, eclipse, etc. Suivant comme on lit le fichier en java avec les flux de type reader, on ne devrait pas non plus avoir ce problème.
            • Partager sur Facebook
            • Partager sur Twitter

            Écrire 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