Leer datos de archivos

Completados

C# proporciona varias maneras de leer texto de un archivo. La mejor opción depende del tamaño del archivo y de lo que desea hacer con él.

Leer todo el archivo a la vez

File.ReadAllText() devuelve todo el archivo como una sola cadena.

string contents = File.ReadAllText("notes.txt");
Console.WriteLine(contents);

Este enfoque funciona bien para archivos pequeños, pero para archivos muy grandes carga todo en memoria a la vez.

Note

Si el archivo no existe, File.ReadAllText() y StreamReader inician una excepción FileNotFoundException. Asegúrese de que el archivo existe antes de intentar leerlo.

Leer el archivo como una matriz de líneas

File.ReadAllLines() devuelve cada línea como una cadena independiente en una matriz.

string[] lines = File.ReadAllLines("notes.txt");

foreach (string line in lines)
{
    Console.WriteLine(line);
}

Leer una línea a la vez

La forma que menos memoria consume es usar un StreamReader y llamar a .ReadLine() en un bucle. Devuelve null cuando no hay más líneas que leer.

using StreamReader reader = new StreamReader("notes.txt");
string line;

while ((line = reader.ReadLine()) != null)
{
    Console.WriteLine(line);
}

Este patrón se recomienda para archivos grandes porque solo se mantiene una línea en la memoria a la vez.

Elección del enfoque adecuado

Si quieres... Use...
Trabajar con todo el archivo como una cadena File.ReadAllText()
Obtener una matriz de líneas en las que puede indexar File.ReadAllLines()
Procesar cada línea una a la vez de forma eficaz StreamReader con ReadLine()