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 dans un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Par défaut Ecrire dans un fichier texte
    Bonsoir tout le monde,

    J'ai voulu écrire dans un fichier texte , j'ai utilisé deux méthodes
    1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PrintWriter fichier = new PrintWriter(new FileWriter("Mon_fichier"));
                fichier.println(occurence(chaine));
                fichier.close();
    2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    BufferedWriter fichier = new BufferedWriter(new FileWriter(new File("Mon_fichier")));
                fichier.write(occurence(chaine));
                fichier.newLine();
                fichier.close();
    A chaque fois au niveau de mon fichier deux lignes vides sont crées à la fin du fichier.

    Pouvez-vous m'aider à éviter ce problème ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    Comment tu initialise ta variable chaîne? Elle fait quoi cette méthode occurrence. Tu ouvre le fichier comment pour vérifier?

  3. #3
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Par défaut
    Bonjour,

    la fonction Occurance , prend comme paramêtre une Liste et retourne une chaine. Ci-après le code de la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    static String occurence(ArrayList<String> list) {
            StringWriter writer = new StringWriter();
            PrintWriter out = new PrintWriter(writer);
            Set<String> unique = new HashSet<String>(list);
            for (String key : unique) {
                out.println(key + ":" + Collections.frequency(list, key));
            }
            return writer.toString();
        }
    Merci

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    Ta fonction occurence retourne une chaine qui finis par un retour à la ligne, et tu envoie cette chaine dans ton fichier avec un println, tu finis donc ton fichier par deux retours à la ligne, donc deux lignes vides.

  5. #5
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Par défaut
    Bonjour,

    Merci pour votre réponse , est-ce que le problème réside dans le writer.toString() ?
    Je viens pas à connaître ou exactement le retour des deux lignes vides

    Merci

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    Citation Envoyé par cheyma Voir le message
    Bonjour,

    Merci pour votre réponse , est-ce que le problème réside dans le writer.toString() ?
    Je viens pas à connaître ou exactement le retour des deux lignes vides

    Merci
    ben ici tu ajoute un retour à la ligne après chaque clé/valeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.println(key + ":" +
    et ici aussi, tu ajoutes un retour à la ligne supplémentaire en fin de traitement
    ce qui fait bien 2 retours à la ligne sur al fin du fichier

  7. #7
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Par défaut
    Merci , en fait j'ai testé avec l'une des deux méthodes et non pas les deux ensemble ,
    Et mon traitement consiste à écrire chacune des chaînes dans une ligne
    À votre avis, est-ce que je doit essayer de supprimer les deux lignes ajoutées ou bien je peux remplacer
    NewLine et println
    Par d'autres méthodes ?

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    tout dépend, c'est quoi ton besoin? La dernière ligne de texte, elle doit se finir par un retour à la ligne ou non?

  9. #9
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Par défaut
    Bonsoir

    en fait, je suis entrain d'écrire dans un fichier texte
    La génération de ce fichier résulte un fichier qui se termine par deux ligne vide , voila la capture
    Nom : Capture1.PNG
Affichages : 206
Taille : 3,2 Ko

    Mais je voudrais avoir , le fichier sans les deux dernières ligne , voila :
    Nom : Capture2.PNG
Affichages : 183
Taille : 2,9 Ko

    Puis j'ai tester le même programme mais une fois j'ai éliminer newLine()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     fichDT.write(occurence(nGramsDT));
                //fichDT.newLine();
                fichDT.close();
    et encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fichNDT.print(occurence(nGramsNDT));
                fichNDT.close();
    De façon j'ai éliminer une ligne vide , il me resta la ligne de la fonction occurence

    Nom : Capture1.PNG
Affichages : 195
Taille : 2,3 Ko



    Merci

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    et bien, dans occurence, dans ta boucle, il ne faut pas utiliser println mais print, ça supprimera les retours à la lignes après chaque clé. Reste le problème qu'il te faut une ligne par clé, et pour ça tu devra mettre une retour à la ligne avant chaque nouvelle clé. Attention à ne pas en mettre avant la première sinon tu aura le problème inverse: tu aura une ligne vide au début.
    Donc pour résumer, pas faire systématiquement des println, ne le faire que pour les lignes où c'est demandé. Ce qui implique un peu plus de code dans ta boucle pour tester sur quelle itération on est.

  11. #11
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Par défaut
    Merci ,mais mon fichier contient milliers de lignes

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    je vois pas le rapport

  13. #13
    Membre très actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Par défaut
    Bonjour ,

    Vous m'avez dit (pas faire systématiquement des println, ne le faire que pour les lignes où c'est demandé).
    C'est demandé de mettre chaque (mot:clé) dans une ligne pour un fichier qui contient 60000 mots.
    J'arrive pas à comprendre comment je peux réaliser ça pour des lignes et pas pour d'autres
    Merci

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    et bien, dans ta boucle,
    soit tu ne met pas de println pour la dernière ligne (si dans ta boucle tu es capable de détecter que tu es à la dernière ligne)
    soit tu ne met des println que devant chaque ligne, à partir de la deuxième ligne (un simple compteur dans ta boucle ou un booleen te permettra de savoir si tu es après la première ligne)

Discussions similaires

  1. lire/ecrire dans un fichier texte
    Par mello dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 13/06/2006, 12h35
  2. [VB.net]ecrire dans un fichier text
    Par grand_prophete dans le forum Windows Forms
    Réponses: 12
    Dernier message: 04/05/2006, 16h37
  3. Réponses: 6
    Dernier message: 17/12/2005, 19h27
  4. [VB.NET] Ecrire dans un fichier texte...
    Par robert.michel9 dans le forum VB.NET
    Réponses: 5
    Dernier message: 04/12/2005, 14h35
  5. Ecrire dans un fichier text en MFC
    Par soufienne dans le forum MFC
    Réponses: 6
    Dernier message: 05/10/2005, 16h54

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