Forum Clubic

[java] Ecriture fichier -> Retour à la ligne ?

Bonjour,

c’est peut-être un problème très simple mais j’utilise peu les fichiers en java…

j’ai fais une petite fonction d’écriture dans les fichiers :

import java.io.*;

public class Ecriture {
String chemin;	// chemin d'écriture du fichier
String entete;  // debut du fichier
String corps;   // corps du fichier
String fin;     // fin du fichier
File f1;
FileWriter out = null; //stream d'écriture
String erreur = "Erreur inconnue";


public Ecriture()
{
}

public Ecriture(String chemin, String entete, String corps, String fin)
{
        this.chemin = chemin;
        this.entete = entete;
        this.corps = corps;
        this.fin = fin;
}

public String ecrire()
{
        try
        {	
                f1 = new File(chemin);
                out = new FileWriter(f1);
                out.write(entete);     // écriture dans le fichier
                out.write(corps);
                out.write(fin);
                out.close();
                erreur = null;
        }
        catch(IOException e)
        { erreur = "Erreur rencontrée lors de l'écriture";
        }

        return erreur;
}
}

pour avoir des retours à la ligne je mets des \n dans les strings que j’envois mais ca marche pas, à l’ouverture du fichier tout les caractères sont l’un à la suite des autres.

J’ai aussi essayer de remplacer les \n par un caractère char carac = ‘\13’ ou ‘\10’ qui est le code ASCII du line feed il me semble mais ca m’affiche des caractères bizarres et ça ne va pas à la ligne… :’(

merci

\r\n pour Windows

merci je vais tester ca

Bonsoir,

  • sous Mac OS (Apple Macintosh), la fin de ligne est indiquée par un retour de chariot (CR) ;
  • sous Unix ou Linux, la fin de ligne est indiquée par un saut de ligne (LF) ;
  • sous Microsoft Windows, la fin de ligne est indiquée par un retour chariot suivi d’un saut de ligne (CRLF).

Plus d’information ici : http://fr.wikipedia.org/wiki/ASCII

Pour l’écriture, la classe FileWriter permet d’écrire caractère par caractère. Regarde du côté de la classe BufferedWriter qui associée à FileWriter permet d’écrire ligne par ligne.

@+

il ya une methode newLine()

la classe? don’t remember, sorry