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

Entrée/Sortie Java Discussion :

Ecrire à la fin d'un fichier.txt => script faq marche pas


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2005
    Messages : 277
    Par défaut Ecrire à la fin d'un fichier.txt => script faq marche pas
    Bonsoir à tous !!!

    Je souhaite écrire à la fin d'un fichier texte.
    J'ai regarder ICI.
    Mais ça a fonctionné qu'une seule fois et maintenant ça écrit tout sur la même ligne ...

    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
     
    	public void Ecrire(String fichier, String txt) throws IOException {
     
    		FileWriter writer = null;
    		try {
    			writer = new FileWriter(fichier, true);
    			writer.write(txt, 0, txt.length());
    		} catch (IOException ex) {
    			ex.printStackTrace();
    		} finally {
    			if (writer != null) {
    				writer.close();
    			}
    		}
    	}
    Aucun erreur mais ça ne va pas à la ligne !

    Une idée? merci d'avance pour votre aide!

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    bonjour,

    le code fonctionne très bien.... Les données sont bien écrites à la fin du fichier.

    Aucun erreur mais ça ne va pas à la ligne !
    Dans ce cas tu n'as pas oublié de rajouter un "\n" à la fin de la chaine de caractères que tu écris dans le fichier ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2005
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2005
    Messages : 277
    Par défaut
    Dans le tuto il n'y est pas.
    Mais même avec ça ne retourne pas à la ligne...

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut correction de la balise [QUOTE]
    Citation Envoyé par nims Voir le message
    Dans le tuto il n'y est pas.
    La FAQ précise bien "à la fin du fichier texte". Les retours à la ligne sont des caractères comme les autres, tu dois les ajouter pour faire des nouvelle lignes.
    Mais même avec ça ne retourne pas à la ligne...
    Ca devrait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String texte = "texte à insérer à la fin du fichier\n"; // rajoute le texte puis une nouvelle ligne
    String texte2 = "\ntexte à insérer à la fin du fichier"; // rajoute une nouvelle ligne puis le texte.

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 661
    Par défaut
    je viens de tester. Effectivement avec un \n à la fin de la chaine il n'y a pas de retour à la ligne mais si tu écris \r\n à la fin de la chaine tu as bien un retour à la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try
    {
    	Ecrire("monFichier.txt","coucou tout le monde\r\n");
    }
    catch(IOException ex)
    {
     
    }
    Si j'appelle 5 fois la fonction Ecrire(), "monFichier.txt" contient donc
    coucou tout le monde
    coucou tout le monde
    coucou tout le monde
    coucou tout le monde
    coucou tout le monde

  6. #6
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Effectivement avec un \n à la fin de la chaine il n'y a pas de retour à la ligne mais si tu écris \r\n à la fin de la chaine tu as bien un retour à la ligne
    Ce n'est pas portable, il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String lineSeparator = System.getProperty("line.separator");
    Ecrire("monFichier.txt","coucou tout le monde" + lineSeparator);

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    En réalité, il faut utiliser la convention de fin de ligne dont on a besoin.
    - Si on fait des fichiers qui utilisent \n, il faut mettre \n.
    - Si on fait des fichiers qui utilisent \r\n, il faut mettre \r\n.
    - Si on fait des fichiers qui sont à ouvrir avec les outils de base de l'OS, il faut utiliser System.getProperty("line.separator").
    - Si on fait des fichiers qui utilisent \r (rare), il faut mettre \r.

    Etc.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 914
    Billets dans le blog
    54
    Par défaut
    Vous pourriez tout aussi bien mettre votre FileWriter dans un PrintWriter et d'appeler println() plutot que write() ce qui eviterait de se casser la tete pour rien (dans le cas general #3)
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Ecrire à la suite d'un fichier txt
    Par scriptman83 dans le forum VBScript
    Réponses: 3
    Dernier message: 23/02/2009, 15h20
  2. pb : Ecrire à la fin d'un fichier
    Par donkeyquote dans le forum C++
    Réponses: 1
    Dernier message: 03/02/2008, 01h26
  3. Ecrire valeurs de TextFields dans fichier txt
    Par piklas dans le forum Général Python
    Réponses: 1
    Dernier message: 30/10/2007, 14h01
  4. Ecrire à la fin d'un fichier
    Par Razgriz dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 20/10/2007, 14h00
  5. ecrire à la fin d'un fichier
    Par bonjour69 dans le forum C
    Réponses: 2
    Dernier message: 20/04/2007, 12h17

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