En este post de programación en C# (c sharp) te mostraré cómo puedes leer un archivo de texto línea por línea (se supone que esta es la manera eficaz de hacerlo).
Obviamente con este enfoque también vas a poder leer todo el contenido de un archivo de texto con c# en Visual Studio ya que puedes ir concatenando la cadena.
Veamos cómo hacerlo usando StreamReader
y el método ReadLine
del mismo.
Creando el StreamReader
Primero debemos tener un “apuntador” al archivo. Así que creamos una nueva instancia de StreamReader pasando el nombre del archivo.
En este caso estoy usando doble \
porque recordemos que ese carácter se usa como secuencia de escape, por lo que al escribir \\
el mismo se convierte a un solo \
.
string ubicacionArchivo = "C:\\Users\\parzibyte\\Desktop\\archivo.txt";
System.IO.StreamReader archivo = new System.IO.StreamReader(ubicacionArchivo);
Fíjate en que mi archivo se encuentra en mi escritorio y tiene el nombre archivo.txt, obviamente en tu caso eso puede variar.
Leyendo línea de archivo en C#
Procedamos a leer el fichero con C#. En este caso una vez que ya tenemos el archivo de StreamReader
simplemente hay que invocar a ReadLine
.
El método ReadLine
va a leer una línea y la devolverá, así que nosotros podemos almacenar el resultado de la llamada en una cadena. Es importante saber que si ya no hay más líneas se nos va a devolver null
.
while ((linea = archivo.ReadLine()) != null)
{
Console.WriteLine("Tenemos una línea:");
Console.WriteLine(linea);
}
Por ello es que en la línea 1 estoy leyendo el archivo una línea a la vez haciendo la asignación pertinente, pero también verifico que lo que se devuelve no es null
.
Todo esto en un ciclo while que básicamente dice “mientras haya líneas, lee otra línea”.
Poniendo todo junto
El código completo queda como se ve a continuación:
using System;
namespace LeerArchivoDeTextoCSharp
{
class Program
{
static void Main(string[] args)
{
/*
https://parzibyte.me/blog
*/
string ubicacionArchivo = "C:\\Users\\parzibyte\\Desktop\\archivo.txt";
System.IO.StreamReader archivo = new System.IO.StreamReader(ubicacionArchivo);
string linea;
while ((linea = archivo.ReadLine()) != null)
{
Console.WriteLine("Tenemos una línea:");
Console.WriteLine(linea);
}
}
}
}
Y como te dije al inicio, si quisieras almacenar todo el contenido podrías concatenar la línea. Además, con este enfoque puedes leer solo determinada línea de tu interés.
Si de verdad quieres leer todo el contenido en una sola llamada, utiliza:
string todoElContenido = System.IO.File.ReadAllText("ubicación_del_archivo.txt");
Para terminar te dejo con más contenido de C# en mi blog.