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
317 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

<code class="language-csharp">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");</code>
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 :
<code class="language-csharp">File.WriteAllLines("file.txt",
    File.ReadLines("file.txt").Where(l => l != "removeme").ToList());</code>
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!

source:php.cn
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