Maison >Java >javaDidacticiel >Comment puis-je supprimer efficacement des lignes spécifiques d'un fichier texte ?

Comment puis-je supprimer efficacement des lignes spécifiques d'un fichier texte ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-02 06:03:13529parcourir

How Can I Efficiently Remove Specific Lines from a Text File?

Suppression de lignes d'un fichier : recherche et élimination de lignes précises

Dans le cadre de la manipulation de fichiers, il peut survenir des scénarios dans lesquels des lignes spécifiques doivent à supprimer d'un fichier texte donné. Pour répondre à ce besoin, notre objectif est de trouver un extrait de code qui localise et élimine des lignes entières d'un fichier.

Considérez un exemple de fichier nommé « myFile.txt » avec le contenu suivant :

aaa
bbb
ccc
ddd

Notre solution souhaitée est une fonction qui nous permet de supprimer une ligne spécifiée. Par exemple, si nous appelons "removeLine("bbb")", le contenu de "myFile.txt" doit être mis à jour comme suit :

aaa
ccc
ddd

Solution de code proposée

Cette solution traque efficacement la ligne que vous souhaitez supprimer et réécrit le fichier, à l'exclusion de cette ligne spécifique, dans un fichier temporaire. Une fois l'opération de réécriture terminée, le fichier d'origine est remplacé par le fichier temporaire.

File inputFile = new File("myFile.txt");
File tempFile = new File("myTempFile.txt");

BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));

String lineToRemove = "bbb";
String currentLine;

while((currentLine = reader.readLine()) != null) {
    // Removing leading and trailing whitespace to ensure accurate line matching
    String trimmedLine = currentLine.trim();
    if(trimmedLine.equals(lineToRemove)) continue;
    writer.write(currentLine + System.getProperty("line.separator"));
}
writer.close();
reader.close();

// Renaming the temporary file to replace the original file
boolean successful = tempFile.renameTo(inputFile);

Ce code accomplit la tâche en lisant le fichier d'origine ligne par ligne, en écrivant chaque ligne non correspondante dans le fichier temporaire. . Lorsqu'une ligne correspondante est rencontrée, elle est ignorée. Une fois toutes les lignes traitées, le fichier temporaire est renommé pour remplacer le fichier d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn