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
FileStream.Seek
. StreamReader.ReadLine()
pour lire la ligne. Méthode 2 : méthode LINQ (applicable à .NET 4.0 et supérieur)
File.ReadLines(fileName).Skip(line - 1).Take(1).First()
. Troisième méthode : lecteur de ligne personnalisé
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 :
File.ReadLines(fileName).Take(25).ToArray()
pour lire les 25 premières lignes. X
. 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!