Supprimer les lignes d'un texte en java

PY01A0080 Messages postés 24 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 15 mars 2011 - 4 févr. 2011 à 15:10
PY01A0080 Messages postés 24 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 15 mars 2011 - 7 févr. 2011 à 17:47
Bonjour,

je coince sur un problème simple en java.
comment peut-on supprimer une ligne d'un fichier texte qui commence avec une lettre spécifique.

Genre, je voudrai supprimer toutes lignes qui commencent avec la lettre E d'un texte.

merci à tous

ZEN

4 réponses

HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
4 févr. 2011 à 21:49
Une façon de faire pourrait être de :

* Créer un ficher temporaire (en vérifiant que le nom n'existe pas grâce à la méthode .exists() de l'objet File).
* Lire le fichier original ligne par ligne.
* Ecrire dans le fichier temporaire les lignes ne commençant pas par "E".
* Fermer les fichiers.
* Renommer le fichier temporaire par le nom de fichier original.

Exemples pour lire/écrire dans des fichiers grâce au BufferedReader et BufferedWriter ici (en anglais).

Example de code pris sur cette page pour lire ligne par ligne un ficher :
Path file = ...;
InputStream in = null;
try {
    in = file.newInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
    String line = null;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException x) {
    System.err.println(x);
} finally {
    if (in != null) in.close();
}


En espérant avoir donné quelques pointeurs :)

Fanny
0
PY01A0080 Messages postés 24 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 15 mars 2011 1
6 févr. 2011 à 00:44
Merci pour votre réponse,
quand vous dites
E
crire dans le fichier temporaire les lignes ne commençant pas par "E".


comment vous faites?

Voici un code que j'essaie mais après while je ne sais pas quelle methode utliser
pour supprimer la ligne qui commence par E

import java.io.*;
class FileRead
{
   public static void main(String args[])
  {
      try{
    // Open the file that is the first
    // command line parameter
    FileInputStream fstream = new FileInputStream("c://Source/file.txt");
    // Get the object of DataInputStream
    DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));

        String strLine;
        String str1 = "E";

    while  ((strLine = br.readLine()) != null && strLine.startsWith(str1))
    {
      ?
     }


    //Close the input stream
    
in.close();
      } catch (Exception e) {//Catch exception if any
      System.err.println("Error: " + e.getMessage());
    }
  }
}


Merci
ZEN
0
Utilisateur anonyme
7 févr. 2011 à 10:52
Bonjour

Ton second test pour ta boucle while est faux comme tu veux garder les phrases ne commençant pas par "E". HFanny t'a donné beaucoup d'indications dont un lien vers la documentation Java de la classe File, il te suffit d'aller y jeter un coup d'oeil, il y a bien une méthode pour créer un fichier temporaire et ensuite, tu renommes le fichier avec la méthode renameTo. Ici tu es sur un forum d'entraide mais nous ne sommes pas là pour faire le boulot à ta place.















0
PY01A0080 Messages postés 24 Date d'inscription mardi 21 novembre 2006 Statut Membre Dernière intervention 15 mars 2011 1
7 févr. 2011 à 17:47
Merci pour ta clarification, tout est devenu plus clair maintenant.


ZEN
0
Rejoignez-nous