Leer y recorrer un fichero linea a linea con C#

Para leer y recorrer un fichero línea a línea desde c# tenemos múltiples maneras usando la librería System.IO.

Una forma no muy eficiente pero muy simple y rápida de obtener todo el contenido de un fichero sería usar System.IO.File.ReadAllText
Después bastaría con crear un array de strings por cada línea y recorrerlo.
Este método es sencillo y válido con ficheros pequeños o si el programa no requiere una performance o rendimiento muy altos.

Ejemplo:

    string fichero = "c:\prueba.txt";
    string contenido = String.Empty;

    if (File.Exists(fichero))
    {
        contenido = File.ReadAllText(fichero);
        string[] lineas = contenido.Split(Environment.NewLine);
        foreach (string linea in lineas)
        {
            Console.WriteLine(linea);
        }
    }

En el ejemplo anterior primero miramos mediante File.Exists si el fichero existe, para evitar que nos diera una excepción en caso de no encontrarse el fichero.

Leer y recorrer archivos grandes con c#

Sin embargo, si se trata de leer y recorrer ficheros grandes, es mejor leer línea a línea el fichero mediante un objeto System.IO.StreamReader.

Ejemplo:

    string fichero = "c:\prueba.txt";

    try
    {
        using (StreamReader lector = new StreamReader(fichero))
        {
            while (lector.Peek() > -1)
            {
                string linea = lector.ReadLine();
                if (!String.IsNullOrEmpty(linea))
                {
                    Console.WriteLine(linea);
                }
            }
        }
    }
    catch(Exception ex)
    {
        Console.WriteLine("Error: " + ex.Message);
    }

 

28903 visitas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *