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
Libérer: 2025-01-15 09:28:44
original
663 Les gens l'ont consulté

高效读取大型文本文件中的特定行 (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>
Copier après la connexion

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!

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