Maison >développement back-end >C++ >Comment puis-je lire efficacement un fichier texte dans l'ordre inverse en utilisant C #?
Lisez la méthode du fichier texte C # en détail
Lors de la lecture du fichier texte inversé, la méthode d'encodage du fichier doit être considérée. Par exemple, si le fichier utilise le codage UTF-8, vous devez identifier correctement la position de départ de chaque caractère Unicode et traiter toute séquence UTF-8 non valide.
Le fragment de code C # suivant montre comment utiliser l'itérateur pour lire le fichier texte:
<code class="language-csharp">using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; public static class ReverseFileStreamReader { public static IEnumerable<string> ReadFileLinesReverse(string filePath) { using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { long fileLength = fileStream.Length; byte[] buffer = new byte[1024]; for (long position = fileLength - buffer.Length; position >= 0; position -= buffer.Length) { fileStream.Seek(position, SeekOrigin.Begin); int bytesRead = fileStream.Read(buffer, 0, buffer.Length); var lines = GetLinesFromBuffer(buffer, bytesRead); foreach (var line in lines) { yield return line; } } } } private static IEnumerable<string> GetLinesFromBuffer(byte[] buffer, int bytesRead) { return new string(GetCharactersFromBuffer(buffer, bytesRead)) .Split('\n') .Reverse(); } private static IEnumerable<char> GetCharactersFromBuffer(byte[] buffer, int bytesRead) { using (var memoryStream = new MemoryStream(buffer, 0, bytesRead)) { using (var streamReader = new StreamReader(memoryStream, Encoding.UTF8)) { while (!streamReader.EndOfStream) { yield return (char)streamReader.Read(); } } } } }</code>Ce code peut lire le fichier texte inversé et traiter chaque ligne générée dans l'ordre. Il utilise l'itérateur pour éviter de lire l'ensemble du fichier en mémoire à la fois, améliorant ainsi l'efficacité du traitement des fichiers volumineux. Dans le même temps, il utilise pour assurer le traitement correct des fichiers de codage UTF-8.
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!