C # Implémentation Implémentation Fichier texte Read Inverse
Lors du traitement de grands fichiers texte (en particulier plus de centaines de milliers de lignes), la consommation de mémoire peut devenir un goulot d'étranglement. L'itérateur fournit une méthode de gestion de la mémoire efficace qui lit les données par le biais de lecture incrémentielle pour éviter de charger le fichier entier dans la mémoire. Cependant, en raison de l'existence de divers schémas de codage, il est plus difficile de lire les fichiers texte.
Malheureusement, le .NET Framework n'a pas fourni la fonction du fichier texte de lecture inverse intégré. Pour atteindre cette fonction, le traitement personnalisé doit être personnalisé en fonction du schéma d'encodage utilisé.
Solution personnalisée
Afin de résoudre cette limite, nous pouvons implémenter nos propres solutions personnalisées. Le code suivant montre un lecteur de fichiers texte inversé, des fichiers itérés et généré dans l'ordre inverse:
Implémentez les détails
<code class="language-csharp">public sealed class ReverseLineReader : IEnumerable<string> { public ReverseLineReader(Func<Stream> streamSource, Encoding encoding) { } public IEnumerator<string> GetEnumerator() { } }</code>
StreamFactory:
Le constructeur accepte une commission
, qui fournit un flux à lire. Cela permet à cette classe d'être utilisée pour les fichiers et de couler en même temps.ReverseLineReader
Détecteur de caractères: streamSource
Pour le codage long (UTF-8 et Unicode), le lecteur analyse le mode d'octet pour identifier la position de départ de chaque caractère. 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!