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 :

modifier un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut modifier un fichier texte
    bonjour tout le monde

    je veux modifier un texte
    par exemple String nom="bonsoir";
    je parcouru le texte à chaque fois je trouve "bonjour" je remplace par nom

    voilaa ce que je savais faire que lire dans un fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	try {
     
       BufferedReader bufferedReader = new BufferedReader(new FileReader(new File(" 1.txt")));
     String line;
     while ((line = bufferedReader.readLine()) != null) {
      System.out.println(line);
      }
      bufferedReader.close();
     } catch (Exception e1) {
     e1.printStackTrace();
     }

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,
    tu ne peux pas modifier un fichier en java, sauf si c'est pour écrire à la fin.
    Si tu veux modifier un fichier tu dois le réécrire entièrement.
    Vu que tu l'as dejà parcouru ligne par ligne, tu n'as plus qu'à faire ton remplacement de "bonjour" par nom, puis à réecrire chaque ligne une par une dans un autre fichier.

    Pour écrire dans un fichier tu peux regarder ici:
    http://java.developpez.com/faq/java/...FICHIER_append

    Good luck!

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Citation Envoyé par Jidefix Voir le message
    Bonjour,
    tu ne peux pas modifier un fichier en java, sauf si c'est pour écrire à la fin.
    Si tu veux modifier un fichier tu dois le réécrire entièrement.
    RandomAccessFile ne permet pas de le faire en fait ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par wax78 Voir le message
    RandomAccessFile ne permet pas de le faire en fait ?
    Si. Il aurait été plus juste de dire "On ne peut pas modifier un fichier texte (Que ce soit en Java ou dans un autre langage.) Si tu veux modifier un fichier texte tu dois le réécrire entièrement."
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Si. Il aurait été plus juste de dire "On ne peut pas modifier un fichier texte (Que ce soit en Java ou dans un autre langage.) Si tu veux modifier un fichier texte tu dois le réécrire entièrement."
    Que veux-tu dire par la ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  6. #6
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    C'est vrai que j'oublie souvent cette classe.
    Il faut dire aussi que son usage est quand même très restreint, tu dois connaitre la structure exacte de ton fichier, tout ça tout ça...

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Que veux-tu dire par la ?
    Je pense avoir été très clair. Un fichier texte ne se modifie pas, il se réécrit. Quelle est la question.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Je pense avoir été très clair. Un fichier texte ne se modifie pas, il se réécrit. Quelle est la question.
    Si tu avais ete assez claire (a mes yeux) je ne me serais pas permis de te poser la question. (ton neutre

    Dans le cas d'ajout ou de suppresion de caractère à l'interieur du texte je peux tres bien comprendre pourquoi insister sur le fait qu'il faut réécrire TOUT le fichier. C'est tout a fait logique.

    Par contre il n'es absolument pas interdit de MODIFIER certains caractères dont on connaitrais eventuelement les emplacements dans le fichier. (exemple un fichier qui contiendrait, admettons, une grille, dont je voudrais par exemple changer un caractere a la fois). Donc qlq chose au contenu formaté si je puis dire.

    Et cela même avec Randomfile, non ?

    La question alors sera "S'il ne s'agit que de modifier certaines parties, en gardant une taille fixe, pourquoi cela ne fonctionnerait-il pas avec un randomfile".
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  9. #9
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    C'est vrai, techniquement du texte, ça ne fait pas de différence avec des octets, des int ou des scoubidous. Encore que pour le texte se pose aussi la question de l'encoding, du caractère de fin de ligne etc etc...
    moi à moins d'avoir crée moi-même le fichier je m'y risquerais pas :p

  10. #10
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Ha il me semblait que je n'était pas sot

    Mais a mon avis, a moins de vouloir régler un important problème des performances (ou de mémoires) ou je ne sais qu'est-ce ... c'est a éviter.

    Et c'est que vrai que tu vas surement devoir faire attention a l'encodage mais ca, si tu as fait tout toi même, ca ne devrait pas poser de problèmes.
    Les fin de lignes etc a la limite n'auraient pas d'importance si tu utilises un "format fixe" (je présume vite fait) limite ca aide a la lisibilité pour l'humain qui voudrait voir le contenu du fichier pour versifier que ses données sont bonnes.

    Désolé minoo d'avoir un peu dévié du problème principal qui n'est pas résolu par un Randomfile . ( a mon d'avoir un texte a remplacer de la même taille, ce qui je pense serait moins couteux, a tester )
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

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

  11. #11
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Dans certains formats (notament les tags ID3 des fichiers mp3, qui sont placés en début de fichier), on utilise une notion de "padding" qui permet de modifier certaines infos sans tout réécrire.

    Ex, on défini que la taille de base du bloc de données est de 128 bytes. Si on n'a besoin que de 20 bytes, on complète le reste (108B) avec des zéros. Quand on met à jour le tag (ajout de l'information "Artiste"), les données augmentent (disons 30B) et on écrase une partie des zéros.

    Ce n'est que lorsque l'on a besoin de plus de 128B que l'on doit réécrire l'intégralité du fichier.


  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par wax78 Voir le message
    La question alors sera "S'il ne s'agit que de modifier certaines parties, en gardant une taille fixe, pourquoi cela ne fonctionnerait-il pas avec un randomfile".
    Comme déjà répondu, oui bon bien sûr, encore qu'il reste à faire attention à ce que la taille reste fixe avec le charset utilisé.
    Mais bon, en pratique ce n'est qu'assez rarement exploitable, comme mécanisme.

    Dans certains formats (notament les tags ID3 des fichiers mp3, qui sont placés en début de fichier), on utilise une notion de "padding" qui permet de modifier certaines infos sans tout réécrire.
    Remarque pertinente, mais les MP3, tout comme tout ce qui utilise ce genre de padding, ne sont pas des fichiers textes.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Remarque pertinente, mais les MP3, tout comme tout ce qui utilise ce genre de padding, ne sont pas des fichiers textes.
    yep, mais on peut toujours utiliser un concept similaire... et compléter par des espaces au lieu de zéros

Discussions similaires

  1. [VBA-E] modifier un fichier texte avant import
    Par hka75 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/04/2007, 21h13
  2. modifier un fichier texte
    Par gennydude99 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 20/10/2006, 22h54
  3. [vb.net] Modifier un fichier texte
    Par olbi dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/10/2006, 15h31
  4. Réponses: 3
    Dernier message: 06/10/2006, 14h21
  5. comment utiliser Notepad pour modifier un fichier texte?
    Par moon13_698 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 06/05/2006, 15h41

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