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. Este ejemplo utiliza uno de diversos 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 utilizan 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 Static Class y un procedimiento Main() vacío
  3. Compruebe que el proyecto hace referencia al menos el espacio de nombres del 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 pase la ruta del archivo en el constructor de la manera siguiente:
    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 un objeto de ese tipo, también.
    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 un método 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 relleno 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 tenga acceso a un archivo, existe la posibilidad de que el archivo que está intentando leer o escribir no esté en el sistema o que 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, 05 de abril de 2014 - Versión: 10.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