Comparaison des méthodes File.ReadLines()
et File.ReadAllLines()
en C# : Quand utiliser laquelle pour lire les fichiers texte ?
Lors du traitement de fichiers texte en C#, File.ReadLines()
et File.ReadAllLines()
sont deux méthodes couramment utilisées pour lire le contenu du fichier. Les deux renvoient un tableau de chaînes, chaque élément du tableau représentant une ligne du fichier, mais ils présentent des différences de performances significatives.
File.ReadAllLines()
File.ReadAllLines()
lira l'intégralité du fichier en mémoire en même temps, puis renverra le tableau de chaînes. Cette méthode est très efficace pour les fichiers de petite ou moyenne taille, mais devient nettement moins efficace pour les fichiers volumineux.
File.ReadLines()
En revanche, la méthode File.ReadLines()
renvoie un objet IEnumerable<string>
qui prend en charge le chargement paresseux des fichiers. Cela signifie qu'il ne charge pas l'intégralité du fichier en mémoire en une seule fois, ce qui en fait un meilleur choix lorsque vous travaillez avec des fichiers volumineux, en particulier dans les scénarios où les performances sont critiques.
Différence de performances
Comme mentionné précédemment, File.ReadLines()
fonctionne bien mieux que File.ReadAllLines()
pour les fichiers volumineux. En effet, File.ReadLines()
lit le fichier par morceaux et renvoie les lignes de manière incrémentielle, permettant aux données d'être traitées immédiatement. File.ReadAllLines()
, en revanche, doit attendre que l'intégralité du fichier soit chargée en mémoire avant de renvoyer le tableau, ce qui peut entraîner des goulots d'étranglement en termes de performances et une utilisation élevée de la mémoire, en particulier lorsqu'il s'agit de fichiers volumineux.
Exemples d'utilisation
Exemple d'utilisation de File.ReadAllLines()
:
<code class="language-csharp">string[] lines = File.ReadAllLines("C:\mytxt.txt"); foreach (string line in lines) { // 处理每一行 }</code>
Exemple d'utilisation de File.ReadLines()
:
<code class="language-csharp">foreach (string line in File.ReadLines("C:\mytxt.txt")) { // 处理每一行(按读取顺序) }</code>
Résumé
Pour les petits fichiers, la différence de performances entre l'utilisation de File.ReadAllLines()
ou File.ReadLines()
est négligeable. Cependant, lorsqu'il s'agit de fichiers volumineux, File.ReadLines()
devient un meilleur choix en raison de son mécanisme de chargement paresseux, garantissant des performances optimales et une efficacité d'utilisation de la mémoire.
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!