Maison > développement back-end > C++ > Comment puis-je supprimer efficacement des lignes de fichiers texte volumineux en C# ?

Comment puis-je supprimer efficacement des lignes de fichiers texte volumineux en C# ?

Barbara Streisand
Libérer: 2025-01-14 09:08:43
original
383 Les gens l'ont consulté

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

Méthode efficace de suppression de lignes de fichiers texte C#

Lors du traitement de fichiers texte, il est souvent nécessaire de supprimer des lignes spécifiques. Cet article explore des solutions efficaces pour accomplir cette tâche en C#, notamment pour le traitement de fichiers texte volumineux.

Présentation de la solution

Ce schéma crée un fichier temporaire et copie sélectivement les lignes du fichier d'origine vers le fichier temporaire, à l'exclusion des lignes à supprimer. Une fois les lignes cibles traitées, le fichier temporaire remplace le fichier d'origine, supprimant ainsi les lignes inutiles.

Mise en œuvre 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");
Copier après la connexion

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

Autres considérations

  • Performances : Pour les fichiers volumineux, cette méthode minimise l'utilisation de la mémoire et les E/S disque en traitant les lignes de manière séquentielle.
  • Encodage : Le code suppose que le fichier texte utilise l'encodage UTF-8. Ajustez l’encodage si nécessaire.
  • Gestion de la mémoire : Pour les fichiers plus petits, la gestion de la mémoire peut être plus efficace. Considérez ce qui suit :
File.WriteAllLines("file.txt",
    File.ReadLines("file.txt").Where(l => l != "removeme").ToList());
Copier après la connexion

Cette méthode évite de créer des fichiers temporaires, mais nécessite une exécution immédiate à l'aide de ToList().

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal