Je recherche une fonction qui permet de supprimer une ligne dans un fichier texte
Je recherche une fonction qui permet de supprimer une ligne dans un fichier texte
Salut,
Ca n'existe pas autant que je sache : il faut que tu le programmes toi même.
A+
Comme l'a dit Kilvaiden, ca n'existe pas ainsi, mais c'est très facile à faire. Il te suffit de parcourir tout le fichier texte et de réécrire toutes les lignes dans un autre fichier et si tu rencontres un ligne que tu veut supprimmer, tu ne l'écris pas dans le deuxième fichier. A la fin de l'opération, soit tu renommes le deuxième fichier par le nom premier, soit tu gardes ainsi.
Si tu ne veut pas passer par un deuxième fichier, tu dois tout stocker dans ton programme sauf les lignes à supprimmer et ensuite tout réécrire dans le fichier de départ.
merci bien de vos repondre,mais comment on recrit sur le meme fichier ceux que l on veut,il ne rajoutera pas a la fin du fichier...
Tu peux essayer de la remplacer...
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; }
Bonsoir
j'aimerais utiliser le code que vous venez de donner mais y'a un petit détail que je ne comprend pas: à quoi servent "String oldPattern" et "String replPattern"?
Merci.
En fait, ce code sert à traiter une ligne précise du fichier, en remplaçant une partie de cette ligne, oldPattern, par autre chose, replPattern.
Si on veut supprimer la ligne, il ne faut pas la traiter, mais simplement ne pas la mettre dans le fichier réécrit.
Ah d'accord,je comprends le principe.Mais qu'est ce que vous entendez par "en remplaçant une partie de cette ligne, par autre chose".Par quoi va t'on remplacer le ligne qu'on ne veut pas écrire?
Et puis j'imagine que "filename" prend en paramètre le nom du fichier,"lineNumber" le numéro de la ligne qu'on veut remplacer,mais je sais toujours pas ce que je dois donner en paramètre pour oldPattern et replPattern.
Merci encore
N'y aurait il pas une âme charitable pour me répondre?
Tu pourrais faire un effort. Thelvin t'a donné la réponse.
Il suffit de lire le fichier intégralement et le réécrire sans la ligne en question :
Après, faudra juste revoir la gestion des exceptions.
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 public static boolean deleteLine(String fileName, int lineNumber) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName))); StringBuffer sb = new StringBuffer(); String line; int nbLinesRead = 0; while ((line = reader.readLine()) != null) { if (nbLinesRead != lineNumber) { sb.append(line + "\n"); } nbLinesRead++; } reader.close(); BufferedWriter out = new BufferedWriter(new FileWriter(fileName)); out.write(sb.toString()); out.close(); } catch (Exception e) { return false; } return true; }
Oui j'avais compris,mais je voulais savoir ce que je dois donner en paramètre concernant "String oldPattern" et "String replPattern".En plus dans la dernière méthode que vous venez de me donner,vous les avez supprimer,donc on dirait qu'ils servaient pas à grand chose.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager