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

avec Java Discussion :

écrire dans un fichier .txt


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    j'écris dans un fichier .txt un nom obtenu à partir d'un JTextField, mais je voudrais que chaque nom soit écrit sur des lignes différentes lorsque j'éxecute la fenêtre plusieurs fois. J'arrive à obtenir quelque chose comme ça:

    Dubois(petit carré)Dupont(petit carré)

    C'est ce que je vois sur mon fichier .txt. Je ne peux pas faire un copier-coller parce que si je le fais il l'affiche correctement, chaque nom sur une ligne.
    Voici la classe qui contient la méthode d'écriture.
    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 Writer
    {
        public static void write() throws IOException
        {
     
            BufferedWriter laB = null;
            FileWriter fw = new FileWriter("I:\\emprunts.txt", true);
            String ligne = SaisieFrame.saisirNom.getText().trim();
            String newline = "\n";
     
            try
            {
                laB = new BufferedWriter (fw);
                fw.write(ligne + newline);
     
            }
            catch (Exception exc)
            {
                exc.printStackTrace();
            }
     
            laB.flush();
     
            laB.close();    
    }
    }
    Comment faire?
    Merci de votre aide

    Pour compléter mon message, lorsque j'affiche le contenu de mon fichier .txt avec une JFrame, tout s'affiche correctement. C'est juste un problème d'affichage sur le document .txt?

  2. #2
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Ne serait-ce pas un problème d'encodage de ton fichier texte ?

    Les petits carrés seraient des codes non connu pour ce type d'encodage.
    Car tu vois cela quand tu es dans un éditeur de texte (du genre le bloc-notes) non ?

    Quel est l'encodage par defaut de new FileWriter("I:\\emprunts.txt", true); ?

    Peut-être pourrait-tu utiliser un objet OutputStreamWriter qui permet de spécifier l'encodage.

    Maintenant, tout dépend aussi de l'utilisation de ton fichier texte ! Est-ce juste pour faire de la persistance ou est-ce un genre de fichier log ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par visiwi Voir le message
    Salut,

    Ne serait-ce pas un problème d'encodage de ton fichier texte ?

    Les petits carrés seraient des codes non connu pour ce type d'encodage.
    Car tu vois cela quand tu es dans un éditeur de texte (du genre le bloc-notes) non ?
    oui, tout à fait


    Quel est l'encodage par defaut de new FileWriter("I:\\emprunts.txt", true); ?

    Peut-être pourrait-tu utiliser un objet OutputStreamWriter qui permet de spécifier l'encodage.

    Maintenant, tout dépend aussi de l'utilisation de ton fichier texte ! Est-ce juste pour faire de la persistance ou est-ce un genre de fichier log ?
    oulà, j'ai rien compris, pas encore arrivé à ce niveau de maîtrise de Java mais merci d'avoir pris le temps de répondre. Ce que je voudrais c'est sauvegarder dans un fichier une série d'emprunts réalisé par une série de personnes, et je l'affiche avec une fenêtre. Pas de problème à l'affichage, juste sur le fichier .txt les petits carrés apparaissent, mais n'empêchent pas l'affichage correct.
    Merci encore

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Pour moi ca vient du fait que sous Windows le caractère pour une nouvelle ligne est "\r\n" et pas juste "\n"
    Pour avoir le caractère de nouvelle ligne de manière indépendante de la plateforme tu peux utiliser :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static String newline = System.getProperty("line.separator");

    Et utiliser cette chaine plutôt que "\n"
    Ca devrait marcher

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Salut,

    Citation Envoyé par George7 Voir le message
    Salut,

    Pour moi ca vient du fait que sous Windows le caractère pour une nouvelle ligne est "\r\n" et pas juste "\n"
    Pour avoir le caractère de nouvelle ligne de manière indépendante de la plateforme tu peux utiliser :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static String newline = System.getProperty("line.separator");

    Et utiliser cette chaine plutôt que "\n"
    Ca devrait marcher
    Et je dirais qu'on devrait systematiquement proceder ainsi.

    Cordialement.

    Dan

  6. #6
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 127
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par danimo Voir le message
    Salut,



    Et je dirais qu'on devrait systematiquement proceder ainsi.

    Cordialement.

    Dan
    Petite question annexe, si on utilise println() ou append() est-ce que ça permet de s'affranchir de ce problème de plateforme? Est ce que ça génère automatiquement un line.separator adapté à la plateforme ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    println oui, append ne met pas de caractère de nouvelle ligne à la fin je pense.

  8. #8
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 127
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par George7 Voir le message
    println oui, append ne met pas de caractère de nouvelle ligne à la fin je pense.
    Oui, oui, ça me reviens tu as raison, append ne fait pas changer de ligne ! Merci en tout cas pour la précision.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2008
    Messages : 50
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par George7 Voir le message
    Salut,

    Pour moi ca vient du fait que sous Windows le caractère pour une nouvelle ligne est "\r\n" et pas juste "\n"
    Pour avoir le caractère de nouvelle ligne de manière indépendante de la plateforme tu peux utiliser :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static String newline = System.getProperty("line.separator");

    Et utiliser cette chaine plutôt que "\n"
    Ca devrait marcher
    En effet, ça a réglé le problème

    Merci à tous de votre aide, et plus particulièrement à George7

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

Discussions similaires

  1. Créer et écrire dans un fichier.txt
    Par Furius dans le forum VBScript
    Réponses: 11
    Dernier message: 16/05/2016, 12h27
  2. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  3. Réponses: 6
    Dernier message: 28/02/2007, 16h18
  4. [VBa-E] Peut-on écrire dans un fichier txt?
    Par gootsu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/07/2006, 12h34
  5. Réponses: 17
    Dernier message: 05/07/2006, 13h26

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