Maison >développement back-end >C++ >« File.ReadLines() » vs « File.ReadAllLines() » : quel est le meilleur pour lire des fichiers texte volumineux en C# ?
Lecture de fichiers texte volumineux en C# : comparaison des performances de File.ReadLines()
et File.ReadAllLines()
File.ReadLines()
et File.ReadAllLines()
sont deux méthodes en C# pour lire des fichiers texte, mais leurs performances diffèrent considérablement.
File.ReadAllLines()
File.ReadAllLines()
lira l'intégralité du fichier en mémoire à la fois et renverra un tableau de chaînes. Cette méthode est efficace pour les petits fichiers, mais pose des problèmes avec les gros fichiers. À mesure que la taille du fichier augmente, le temps nécessaire pour lire et traiter l’intégralité du fichier augmente considérablement. De plus, File.ReadAllLines()
consomme beaucoup de mémoire, en particulier lorsque vous travaillez avec des fichiers de plusieurs gigaoctets.
File.ReadLines()
File.ReadLines()
résout les limitations de File.ReadAllLines()
grâce au chargement paresseux. Au lieu de lire l'intégralité du fichier en mémoire d'un coup, il renvoie un IEnumerable<string>
qui vous permet de parcourir chaque ligne du fichier selon vos besoins. Cette approche réduit l'empreinte mémoire et améliore les performances lors du traitement de fichiers volumineux.
Comparaison des performances
Les benchmarks montrent que File.ReadLines()
fonctionne mieux que File.ReadAllLines()
pour les fichiers volumineux. Cette différence devient plus visible à mesure que la taille du fichier augmente. Par exemple, la lecture d'un fichier de 100 Mo à l'aide de File.ReadAllLines()
peut prendre plusieurs secondes, alors que File.ReadLines()
peut terminer la tâche en moins d'une seconde.
Exemple d'utilisation
Utilisez File.ReadLines()
pour lire les fichiers :
<code class="language-csharp">using System.IO; string path = "C:\mytxt.txt"; foreach (var line in File.ReadLines(path)) { // 处理每一行 }</code>
Utilisez File.ReadAllLines()
pour lire les fichiers :
<code class="language-csharp">using System.IO; string path = "C:\mytxt.txt"; string[] lines = File.ReadAllLines(path); // 处理所有行</code>
Conclusion
Pour les fichiers texte volumineux, File.ReadLines()
présente des avantages de performances significatifs par rapport à File.ReadAllLines()
. Grâce au chargement paresseux, File.ReadLines()
réduit la consommation de mémoire et augmente la vitesse de traitement sans sacrifier l'efficacité.
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!