"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je supprimer efficacement les lignes des grands fichiers texte en C #?

Comment puis-je supprimer efficacement les lignes des grands fichiers texte en C #?

Publié le 2025-03-22
Parcourir:503

How Can I Efficiently Delete Lines from Large Text Files in C#?

c # Méthode de délétion de la ligne de fichier texte efficace

]

Lors du traitement des fichiers texte, il est souvent nécessaire de supprimer des lignes spécifiques. Cet article explore des solutions efficaces pour implémenter cette tâche en C #, en particulier pour gérer de grands fichiers texte.

Présentation de la solution

Ce schéma crée un fichier temporaire et copie sélectivement les lignes à partir du fichier d'origine dans le fichier temporaire, à l'exclusion des lignes à supprimer. Après avoir traité la ligne cible, le fichier temporaire remplace le fichier d'origine, supprimant ainsi les lignes inutiles.

implémentation du code

string tempFile = Path.GetTempFileName();

using (StreamReader sr = new StreamReader("file.txt"))
using (StreamWriter sw = new StreamWriter(tempFile))
{
    string line;

    while ((line = sr.ReadLine()) != null)
    {
        if (line != "removeme")
            sw.WriteLine(line);
    }
}

File.Delete("file.txt");
File.Move(tempFile, "file.txt");

Cette méthode garantit que seules les lignes nécessaires sont conservées tout en excluant les lignes cibles des fichiers mis à jour.

Autres considérations

  • Performance: Pour les fichiers volumineux, cette méthode minimise l'utilisation de la mémoire et les E / S de disque en traitant les lignes séquentiellement.
  • Encoding: Le code suppose que le fichier texte est codé à l'aide de UTF-8. Ajustez le codage au besoin.
  • Traitement de la mémoire: Pour les fichiers plus petits, le traitement de la mémoire peut être plus efficace. Veuillez considérer ce qui suit:
File.WriteAllLines("file.txt",
    File.ReadLines("file.txt").Where(l => l != "removeme").ToList());

Cette méthode évite de créer des fichiers temporaires, mais doit être exécuté immédiatement à l'aide de Tolist ().

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3