Cómo leer un archivo de texto mediante System.IO y Visual C#

Seleccione idioma Seleccione idioma
Id. de artículo: 306777 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 302309.

En este artículo se refiere a los siguientes espacios de nombres de biblioteca de clases de Microsoft.NET Framework:
  • System.IO
  • System.Collections
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo paso a paso se muestra cómo recuperar información de un archivo de texto (.txt) y, a continuación, utilizar una clase ArrayList para mostrar dicha información al usuario.

Requisitos

Microsoft Visual C#

Leer archivos de texto en Visual C#

La apertura y lectura de archivos para acceso de lectura es una parte importante de la funcionalidad de entrada y salida (E/S), incluso si no es necesario escribir en el archivo en cuestión. Este ejemplo abre un archivo para lectura, que es útil para leer archivos de texto, pero inapropiado para los archivos binarios. En este ejemplo se utiliza uno de los muchos métodos disponibles para abrir el archivo.

Aunque existen muchas estructuras de datos almacenar información que se recupera el archivo, una clase ArrayList es la estructura más fácil de utilizar. Para abrir y leer el archivo, este ejemplo utiliza objetos del espacio de nombres System.IO, en concreto la clase System.IO.StreamReader.

Nota: En este ejemplo se requiere una forma de un archivo de texto (.txt) desde la que se va a leer.

Para cargar y leer un archivo de texto desde Visual C#, siga estos pasos:
  1. Inicie Microsoft Visual Studio.
  2. Cree una nueva aplicación de consola Visual C#. Visual Studio crea una Clase estática junto con un procedimiento Main() vacío.
  3. Compruebe que el proyecto hace referencia al menos el espacio de nombres System . Utilice la instrucción using en los espacios de nombres System, System.IOy System.Collections de modo que no tiene que calificar las declaraciones de estos espacios de nombres más adelante en el código. Debe utilizar estas instrucciones antes que cualquier otra declaración.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. Para abrir un archivo para lectura, crear una nueva instancia de un objeto StreamReader y pasar la ruta del archivo en el constructor de la siguiente manera:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. Debe tener una variable de cadena para almacenar cada línea del archivo a medida que procesa. Puesto que agregará estas líneas a un objeto ArrayList, declare y cree también un objeto de ese tipo.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. Existen varios métodos para leer el archivo, incluido el método ReadToEnd que lee todo el archivo a la vez. Sin embargo, para este ejemplo, puede utilizar el método ReadLine para poner en la línea de un archivo a la vez. Cuando se alcanza el final del archivo, este método devuelve un valor nulo, lo que proporciona una forma de terminar el bucle. Mientras lee cada línea del archivo, puede utilizar el método Add de ArrayList para insertar las líneas en la clase ArrayList .
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. Utilice un bucle For Each para escribir el contenido del objeto ArrayList recién completado en la consola de la siguiente manera:
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. Guarde y ejecute el código que genera un listado del archivo en la consola.

Lista de código completa

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		static void Main(string[] args)
		{
			StreamReader objReader = new StreamReader("c:\\test.txt");
			string sLine="";
			ArrayList arrText = new ArrayList();

			while (sLine != null)
			{
				sLine = objReader.ReadLine();
				if (sLine != null)
					arrText.Add(sLine);
			}
                        objReader.Close();

			foreach (string sOutput in arrText)
				Console.WriteLine(sOutput);
			Console.ReadLine();
		}
	}
}
				

Solución de problemas

Hay varios aspectos que tener en cuenta cuando trabaje con E/S de archivos, incluidos los siguientes elementos:
  • Siempre que se accede a un archivo, existe la posibilidad de que el archivo que está intentando leer o escribir no esté en el sistema o esté en uso.
  • En este ejemplo se lee todo el archivo en la memoria antes de procesar el archivo. Puede encontrarse con una situación en la que el archivo es demasiado grande para guardarlo en memoria, o puede que no tenga permisos para tener acceso al archivo.
Cualquiera de estas situaciones hacen que se provoque una excepción. Siempre resulta útil proporcionar un bloque try... catch para tratar estos problemas habituales.

Propiedades

Id. de artículo: 306777 - Última revisión: sábado, 23 de agosto de 2014 - Versión: 12.0
La información de este artículo se refiere a:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
Palabras clave: 
kbcollections kbhowtomaster kbio kbmt KB306777 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 306777

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com