Maison >développement back-end >C++ >Comment puis-je accéder efficacement à une ligne spécifique dans un fichier texte volumineux à l'aide de C# ?

Comment puis-je accéder efficacement à une ligne spécifique dans un fichier texte volumineux à l'aide de C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-15 09:28:44666parcourir

高效读取大型文本文件中的特定行 (C#)

C# lit efficacement des lignes spécifiques dans des fichiers texte volumineux

Besoin de lire des lignes spécifiques à partir d'un fichier texte volumineux, évitant ainsi la solution gourmande en mémoire consistant à stocker l'intégralité du fichier sous forme de tableau de chaînes. Les méthodes suivantes peuvent être réalisées :

Méthode 1 : méthode de décalage d'octets

  • Calculez le décalage d'octets de la ligne cible dans le fichier.
  • Positionnez le flux de fichiers sur le décalage calculé à l'aide de la méthode FileStream.Seek.
  • Utilisez StreamReader.ReadLine() pour lire la ligne.

Méthode 2 : méthode LINQ (applicable à .NET 4.0 et supérieur)

  • Utilisez File.ReadLines(fileName).Skip(line - 1).Take(1).First().
  • Cette méthode permet d'accéder directement à des lignes individuelles sans lire l'intégralité du fichier.

Troisième méthode : lecteur de ligne personnalisé

  • Créez un lecteur de ligne personnalisé qui saute un nombre spécifié d'octets avant de lire une ligne. Cette méthode convient aux petits nombres de lignes et peut être traitée efficacement.

Exemple (Méthode 1)

<code class="language-csharp">public static string GetLine(string fileName, int line)
{
    using (var sr = new StreamReader(fileName))
    {
        // ... (代码略,此处需补充计算字节偏移量和读取行的逻辑) ...
    }
}</code>

Traitement des documents structurés

Pour les documents structurés, vous pouvez utiliser les stratégies suivantes :

  • Utilisez File.ReadLines(fileName).Take(25).ToArray() pour lire les 25 premières lignes.
  • Analyser la ligne 17 pour déterminer la valeur de la variable X.
  • Utilisez File.ReadLines(fileName).Skip(25).Take(X).ToArray() pour lire les X lignes suivantes.

Ces méthodes vous permettent de lire efficacement des lignes spécifiques d'un gros fichier texte sans charger l'intégralité du fichier en mémoire. La méthode que vous choisissez dépend de la taille spécifique du fichier, de sa structure et de la version de .NET Framework.

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