Leer datos de archivos
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() |