Colección de citas famosas - Slogan de motivación - Cómo leer archivos grandes de más de 20 g en C#

Cómo leer archivos grandes de más de 20 g en C#

Al leer archivos grandes de más de 20 GB en C#, se recomienda utilizar una secuencia para evitar el problema de memoria insuficiente causado por cargar todo el archivo en la memoria a la vez.

El siguiente es un código de muestra que utiliza una secuencia para leer un archivo grande:

using (FileStream fs = new FileStream(@"C:\path\to\large\file . txt", FileMode.Open, FileAccess.Read))

{

usando (BufferedStream bs = new BufferedStream(fs))

{

usando (StreamReader sr = new StreamReader(bs))

{

línea de cadena;

mientras ((línea = sr.ReadLine() ) != null)

{

// Lógica para procesar cada fila de datos

}

}

}

}

En este ejemplo de código, usamos tres objetos de flujo:

FileStream: se usa para abrir un archivo grande y usarlo como entrada. stream

BufferedStream: se utiliza para acelerar la lectura de datos y reducir el número de lecturas del disco duro mediante el uso de un caché interno

StreamReader: se utiliza para leer datos de texto línea por línea

p>

En el ciclo while, podemos procesar la lógica de cada fila de datos. Dado que solo se lee una fila de datos, el uso de memoria es pequeño, lo que puede evitar el problema de desbordamiento de memoria causado por archivos demasiado grandes.

Cabe señalar que al procesar archivos grandes, para garantizar el rendimiento, es mejor utilizar la lectura asincrónica. Esto se puede lograr reemplazando el método ReadLine del objeto StreamReader con la versión asincrónica ReadLineAsync.