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 :

Supprimer une ligne dans un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut Supprimer une ligne dans un fichier texte
    Salut,
    je suis en train d'implémenter des opérations qui s'effectuent dans un fichier texte: ajout d'une ligne, supression, mise à jour... ça ressemble à une petite base de données.Le problème est que étant donné une ligne je sais pas comment faire sa supression.

    Merci pour votre attention

  2. #2
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Tu peux te positionner à la fin de la ligne et faire des caractères backspaces ('\b') jusqu'au début de la ligne.
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  3. #3
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    Oui exactement, mais c'est ce que je suis pas parvenu à le faire j'aimerai bien qu'on me fournisse des exemples sur lesquels je me baserai.

  4. #4
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Ce n'est pas très propre l'histoire les backslash, la ligne est supprimée uniquement à l'affichage, elle est encore bien présente dans le fichier et pourrait corrompre des statitiques des que le nombre total de caracteres, le nombre de mots etc.
    La seule solution efficace consiste a créer un fichier temporaire, recopier toutes les lignes du fichier source ( sauf celle à supprimer ) dans ce fichier temporaraire, puis renommer le fichier temporaire avec le nom du fichier d'origine.

  5. #5
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    oui c'est ce que je venais de faire mais il me reste à renommer le fichier temporaire. existe t il une méthode qui fait ce travail?
    Merci pour ta réponse

  6. #6
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonFichierTemporaire.renameTo(tonFichierOriginal);
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  7. #7
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    Merci, je vais essayer ça.
    Bonne Journée 8)

  8. #8
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    g essayé mais ça n a pas marché. La méthode renameTo me retourne false. Est ce qu'il y a une explication à ça???

  9. #9
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Bien sûr, le fichier existe déjà à ce que j'ai compris. Donc le fichier ne peut pas être renommé!
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  10. #10
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Pense à bien fermer les flux sur tes fichiers sinon les instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    monFichier1.delete();
    et
    monFichier2.renameTo(monFichier)
    vont retourner "false" et tu vas venir reposter pour ça, comme un grand nombre de membres...

  11. #11
    Membre du Club Avatar de @yoyo
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    les flux sur les fichiers sont bien fermés. Mais voila renameTo retourne false car l'autre fichier existe déja donc je dois faire un delete avant.
    Merci pour votre aide.

  12. #12
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Peut être que j'arrive après la bataille, mais si tu bidouillais plutôt ca ?
    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
    28
    29
    30
     
        public static boolean readReplace(String fileName, String oldPattern,
                String replPattern, int lineNumber) {
            String line;
            StringBuffer sb = new StringBuffer();
            int nbLinesRead = 0;
            try {
                FileInputStream fis = new FileInputStream(fileName);
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        fis));
                while ((line = reader.readLine()) != null) {
                    nbLinesRead++;
                    line = line.toLowerCase();
     
                    if (nbLinesRead == lineNumber) {
                        line = line.replaceFirst(oldPattern.toLowerCase(),
                                replPattern);
                    }
                    sb.append(line + "\n");
                }
                reader.close();
                BufferedWriter out = new BufferedWriter(new FileWriter(fileName));
                out.write(sb.toString());
                out.close();
     
            } catch (Exception e) {
                return false;
            }
            return true;
        }
    Ca t'éviterait de jouer avec les fichiers... Non ?
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

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

Discussions similaires

  1. Supprimer une ligne dans un fichier texte
    Par Phil.ippe dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/07/2007, 18h44
  2. Supprimer une ligne dans un fichier texte
    Par bsketeur dans le forum Langage
    Réponses: 26
    Dernier message: 28/06/2006, 10h36
  3. supprimer une ligne dans un fichier texte
    Par linouline dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 23h02
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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