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

Langage Java Discussion :

modifier fichier texte en java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut modifier fichier texte en java
    Bonjour à tous,
    Il me faudrait modifier un fichier texte en java et je ne sais pas comment faire.
    Je m'explique:
    J'ai un fichier "annu.txt" dans le quel se trouve une liste de personnes avec leur numéro de téléphone.

    Ex: 
    Dupond:0623154718 
    Marcel:0862415723
    ..
    
    Et je voudrais modifier le numéro de téléphone d'une personne en question.
    Voici donc la structure de ma méthode :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    void modif(String nom,int num)

    Si je fait: modif(Marcel,0230451789),
    Je vais alors avoir la ligne de mon fichier texte modifié par le numéro que j'aurrai passé en parametre.

    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    j'aimerais avoir une autre soluce pour une modification de la meme sorte

    moi je crée un fichier temporaire en ecriture, et je copie les lignes de mon premier dans le temporaire

    tu pourrait faire comme ça (le code doit etre un peu buggé mais l'idée est la)

    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
     
    File entree = new File("annu.txt");
    File sortie = new File("temp.txt");
    bufferedReader br = new BufferedReader(new FileReader(entree));
    bufferedWriter bw = new BuffereWriter(new FileWriter(sortie));
    String ligne="";
     
    while ((ligne = br.readln()) != null){
     if(ligne.startswith(nom)){
         bw.write(nom+":"+num+"\n");
         bw.flush();
     }else{
         bw.write(ligne+"\n");
         bw.flush();
     }
    }
    bw.close();
    br.close();
     
    entree.renameTo(new File("poubelle"));
    sortie.renameTo(new File("annu.txt"));
    entree.delete();

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Une méthode propre pour faire ça, c'est de passer par une manager ou un truc du genre pour gérer ton fichier : pour récupérer un numéro de tél ou en définir ou ajouter un, tu passes par le manager. Le plus simple c'est que le manager ne lit le fichier qu'une seule fois au lancement de l'appli. Il garde alors tous les numéros en mémoire et dispose d'une méthode simple private pour réécrire le fichier. La question c'est de savoir quand réécrire, mais ça, c'est toi qui choisis en fonction des contraintes de l'appli. L'intérêt c'est que tu dissocies lecture du fichier (une seule fois au démarrage de l'appli) et écriture (à divers moment, après le démarrage).

    Pour le code, ce que donne AliLoU` me semble correct.

    Pour garder les numéros en mémoire, si ton fichier ne contient vraiment que des numéros et ne risque pas d'évoluer, le plus simple est de stocker les paires nom/numéro dans une Map. Ca te permettra de faire des get et set très facilement.

    Sinon, ton prototype modif(String nom,int num) n'est pas bon car avec int (à condition en plus de ne pas rentrer de numéro trop grand) tu zappes le 0 devant : 0230451789 sera transformé en 230451789. Alors soit, à la lecture, tu t'amuses à regarder combien y a de chiffre dans le numéro et tu rajoutes un 0 si taille < 10, soit tu utilises un String, ce qui te permettra en plus de mettre des numéros avec notation internationale, etc.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut
    Merci pour ta réponse.
    Mais j'ai un ptit souci lors de l'exécution.
    En fait, j'ai donc mon fichier principal "annu.txt" dans lequel se trouve ma base de donné et je créé aussi un fichier "temp.txt" dans lequel il n'y a rien.
    Et quand je lance l'exécution, je me retrouve juste avec un fichier "poubelle" qui est le meme que celui de "annu.txt" sans aucune modif.

    Où est passé mon fichier "annu.txt" avec la modification voulu ?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut
    Un grand Merci, c'est bon j'ai trouver en fait à la fin il suffit juste de mettre:
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    sortie.renameTo(new File("annu.txt"));
    sans renommer en "poubelle" et tout le reste.

    Merci encore, super sympa !!

  6. #6
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 32
    Par défaut modifier un fichier texte plusieurs fois
    Bonjour,
    j'aimerais faire évoluer ce code pour que deux modifications succéssives marchent, j em'explique :
    quand je modifie le fichier une fois, ça marche. quand je recommence ça marche mais je perds ma première modif, y a t il un moyen de garder la première
    modification?
    merci de votre aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2008, 11h49
  2. Question sur lecture d'un fichier text en Java
    Par ovcrash dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 27/11/2007, 17h14
  3. Transfert d'un fichier texte avec java
    Par mokhtarmaroc dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 25/08/2007, 10h58
  4. Probléme d'ecriture dans un fichier texte en java
    Par oldscrout dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/01/2007, 19h10
  5. Comment ouvrir un fichier text sous Java ?
    Par mpascolo dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 11/10/2006, 14h59

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