Maison >développement back-end >C++ >« File.ReadLines() » vs « File.ReadAllLines() » : quel est le meilleur pour lire des fichiers texte volumineux en C# ?

« File.ReadLines() » vs « File.ReadAllLines() » : quel est le meilleur pour lire des fichiers texte volumineux en C# ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-07 21:49:41900parcourir

Lecture de fichiers texte volumineux en C# : comparaison des performances de File.ReadLines() et File.ReadAllLines()

`File.ReadLines()` vs. `File.ReadAllLines()`: Which is Best for Reading Large Text Files in C#?

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!

Déclaration:
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