C # Lire efficacement les fichiers texte
Dans l'environnement .NET C #, la lecture des fichiers texte un par un est une tâche commune. Cet article explorera plusieurs méthodes différentes et analysera son efficacité.
Utilisez StreamReader.Readline
Votre méthode actuelle utilise et la taille du tampon est définie sur 128. Cependant, le test de référence montre que l'augmentation de la taille du tampon à 1024 (par défaut) ou 4096 (cluster NTFS) peut améliorer considérablement les performances. Le fragment de code suivant le démontre:
StreamReader.ReadLine
<code class="language-csharp">const Int32 BufferSize = 128; using (var fileStream = File.OpenRead(fileName)) using (var streamReader = new StreamReader(fileStream, Encoding.UTF8, true, BufferSize)) { String line; while ((line = streamReader.ReadLine()) != null) { // 处理每一行 } }</code>
Cette méthode utilise en interne, par rapport au plus petit dans la zone tampon, les performances sont améliorées. Il utilise les itérateurs et réduit la consommation de mémoire.
StreamReader
StreamReader.ReadLine
<code class="language-csharp">var lines = File.ReadLines(fileName); foreach (var line in lines) // 处理每一行</code>
. Cette méthode nécessite plus de mémoire, mais permet un accès aléatoire.
File.ReadLines
IEnumerable<string>
Bien que soit très pratique, lors de la lecture de fichiers volumineux, sa vitesse est considérablement plus lente, comme le montre l'exemple suivant:
<code class="language-csharp">var lines = File.ReadAllLines(fileName); for (var i = 0; i < lines.Length; i++) // 处理每一行</code>
Conclusion
En bref, pour lire les fichiers texte un par un, est recommandé pour sa simplicité et son efficacité. Si vous avez besoin de personnaliser l'option de partage, envisagez d'utiliser le String.Split
avec une taille de tampon appropriée. Cependant, le test de référence doit être effectué pour déterminer la solution qui convient le plus à vos besoins spécifiques.
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!