Maison >développement back-end >C++ >Comment puis-je lire efficacement des fichiers texte volumineux dans .NET ?
Lecture de fichiers texte volumineux dans .NET : explorer des approches efficaces
Travailler avec des fichiers texte volumineux nécessite des techniques efficaces pour gérer le grand volume de données . Un scénario courant consiste à lire ligne par ligne un fichier texte de 1 Go. Ce guide explore les méthodes optimales pour cette tâche.
StreamReader.ReadLine()
StreamReader est une approche courante pour lire des fichiers texte. La méthode ReadLine() permet de parcourir les lignes du fichier. Cependant, pour les fichiers volumineux, cette méthode peut être assez lente, car elle lit l'intégralité du fichier en mémoire.
MemoryMappedFile
Si disponible dans .NET 4.0 ou version ultérieure, MemoryMappedFile est une classe recommandée spécialement conçue pour gérer des fichiers volumineux. Il mappe le fichier en mémoire, permettant un accès direct à son contenu sans charger l'intégralité du fichier en mémoire.
Exemple de code
L'exemple de code suivant illustre comment utiliser MemoryMappedFile lire un gros texte file:
using System.IO.MemoryMappedFiles; ... // Open the file MemoryMappedFile mappedFile = MemoryMappedFile.CreateFromFile("largeFile.txt", FileMode.Open, null, 1024 * 1024 * 1024); // 1 GB buffer // Create a view of the file MemoryMappedViewAccessor accessor = mappedFile.CreateViewAccessor(); // Read the file byte[] lineBytes = new byte[1024]; for (long i = 0; i < mappedFile.Length; i += 1024) { accessor.ReadArray(i, lineBytes, 0, 1024); Console.WriteLine(Encoding.UTF8.GetString(lineBytes)); }
Conclusion
Lors du traitement de fichiers texte volumineux, MemoryMappedFile offre une solution plus efficace par rapport à StreamReader.ReadLine(), permettant un accès direct au données sans charger l’intégralité du fichier en mémoire. Pour des raisons de compatibilité, StreamReader.ReadLine() reste une option viable pour les versions antérieures de .NET.
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!