Cómo leer y escribir en un archivo de texto mediante el uso de Visual C#

Id. de artículo: 816149 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo paso a paso describe cómo leer de y escribir en un archivo de texto mediante el uso de Visual C#.

Requisitos

En la lista siguiente describe el hardware recomendado, software, infraestructura de red y los service packs que debe tener:
  • Visual C#
Este artículo se supone que está familiarizado con lo siguiente tema:
  • Visual C#

Leer y escribir archivos de texto

El Leer un archivo de textosección de este artículo describe cómo utilizar la clase StreamReader para leer un archivo de texto. El Escribir un archivo de texto (ejemplo 1) y el Escribir un archivo de texto (ejemplo 2)secciones describen cómo utilizar la clase StreamWriter para escribir texto en un archivo.

Leer un archivo de texto

El código siguiente utiliza la clase StreamReader para abrir, leer y cerrar el archivo de texto. Se puede pasar la ruta de acceso de un archivo de texto para el constructor de la clase StreamReader para abrir el archivo de forma automática. El método ReadLine lee cada línea de texto e incrementa el puntero de archivo a la siguiente línea tal como se lee. Cuando el método ReadLine llega al final del archivo, devuelve una referencia nula.
  1. Crear un archivo de texto de ejemplo en el Bloc de notas. Para ello, siga estos pasos:
    1. En el Bloc de notas, pegue el texto siguiente:
      hello world
    2. Guarde el archivo como ejemplo.txt.
  2. Inicie Microsoft Visual Studio.
  3. En el Archivo menú, elija Nuevoy, a continuación, haga clic en Proyecto.
  4. Haga clic en Proyectos de Visual C# bajo Tipos de proyectoy, a continuación, haga clic en Aplicación de consola bajo Plantillas

    Nota En Visual Studio 2008 de Visual Studio 2005 de o bien, haga clic en Visual C# bajo Tipos de proyectoy, a continuación, haga clic en Aplicación de consola bajo Plantillas.
  5. Agregue el código siguiente al principio del archivo Class1.cs:
    using System.IO;
    Nota En Visual Studio 2005 de o 2008 de Visual Studio, el archivo predeterminado es Program.cs.
  6. Agregue el siguiente código al método Main :
    String line;
    try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
       finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    
  7. En el Depurar menú, haga clic en Inicio Para compilar y ejecutar la aplicación. Presione ENTRAR para cerrar la ventana de consola. La ventana de consola Muestra el contenido del archivo ejemplo.txt.
    Hello world

Escribir un archivo de texto (ejemplo 1)

El código siguiente utiliza la clase StreamWriter para abrir, escribir y cerrar el archivo de texto. De forma similar a la clase StreamReader , puede pasar la ruta de acceso de un archivo de texto al constructor StreamWriter para abrir el archivo automáticamente. El método WriteLine Escribe una línea completa de texto en el archivo de texto.
  1. Inicie Visual Studio.
  2. En el Archivo menú, elija Nuevoy, a continuación, haga clic en Proyecto.
  3. Haga clic en Proyectos de Visual C# bajo Tipos de proyectoy, a continuación, haga clic en Aplicación de consola bajo Plantillas.

    Nota En Visual Studio 2008 de Visual Studio 2005 de o bien, haga clic en Visual C# bajo Tipos de proyectoy, a continuación, haga clic en Aplicación de consola CLR bajo Plantillas.
  4. Agregue el código siguiente al principio del archivo Class1.cs:
    using System.IO;
  5. Agregue el siguiente código al método Main :
    try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. En el Depurar menú, haga clic en Inicio Para compilar y ejecutar la aplicación. Este código crea un archivo que se denomina Test.txt en la unidad C. de Test.txt abierto en un editor de texto como el Bloc de notas. Test.txt contiene dos líneas de texto:
    Hello World!!
    From the StreamWriter class
    

Escribir un archivo de texto (ejemplo 2)

El código siguiente utiliza la clase StreamWriter para abrir, para escribir, y para cerrar el archivo de texto. A diferencia del ejemplo anterior, este código pasa dos parámetros adicionales al constructor. El primer parámetro es la ruta de acceso de archivo y el nombre de archivo del archivo. El segundo parámetro es True, especifica que el archivo se abre en modo append. Si especifica False para el segundo parámetro, el contenido del archivo se sobrescribe cada vez que ejecute el código. La tercera parámetro especifica Unicode, por lo que StreamWriter codifica el archivo en formato Unicode. También puede especificar los siguientes métodos de codificación para el tercer parámetro:
  • ASC11
  • Unicode
  • UTF7
  • UTF8
El método Write es similar al método WriteLine , excepto en que el método Write no incrusta automáticamente un retorno de carro o avance de línea Combinación de caracteres (CR/LF). Esto es útil cuando desea escribir uno carácter a la vez.
  1. Inicie Visual Studio.
  2. En el Archivo menú, elija Nuevoy, a continuación, haga clic en Proyecto.
  3. Haga clic en Proyectos de Visual C# bajo Tipos de proyectoy, a continuación, haga clic en Aplicación de consola bajo Plantillas

    Nota En Visual Studio 2008 de Visual Studio 2005 de o bien, haga clic en Visual C# bajo Tipos de proyectoy, a continuación, haga clic en Aplicación de consola bajo Plantillas
  4. Agregue el código siguiente al principio del archivo Class1.cs :
    using System.IO;
    using System.Text;
    Nota En Visual Studio 2005 de o 2008 de Visual Studio, el archivo predeterminado es Program.cs.
  5. Agregue el siguiente código al método Main :
    Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
  6. En el Depurar menú, haga clic enInicio Para compilar y ejecutar la aplicación. Este código crea un archivo denominado Test1.txt en la unidad C. Test1.txt de abrir en un editor de texto como Bloc de notas. Test1.txt contiene una sola línea de texto:
    0123456789

Lista de código completa

  • Leer un archivo de texto
    //Read a Text File
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args)
    		{
    		
    			String line;
    
    		try 
    			{
    				//Pass the file path and file name to the StreamReader constructor
    				StreamReader sr = new StreamReader("C:\\Sample.txt");
    
    				//Read the first line of text
    				line = sr.ReadLine();
    
    				//Continue to read until you reach end of file
    				while (line != null) 
    				{
    					//write the lie to console window
    					Console.WriteLine(line);
    					//Read the next line
    					line = sr.ReadLine();
    				}
    
    				//close the file
    				sr.Close();
    				Console.ReadLine();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
    
  • Escribir un archivo de texto (versión 1)
    //Write a text file - Version-1
    using System;
    using System.IO;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    			try 
    			{
    
    				//Pass the filepath and filename to the StreamWriter Constructor
    				StreamWriter sw = new StreamWriter("C:\\Test.txt");
    
    				//Write a line of text
    				sw.WriteLine("Hello World!!");
    
    				//Write a second line of text
    				sw.WriteLine("From the StreamWriter class");
    
    				//Close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }
  • Escribir un archivo de texto (versión 2)
    //Write a text file  - Version 2
    using System;
    using System.IO;
    using System.Text;
    
    namespace readwriteapp
    {
    	class Class1
    	{
    		[STAThread]
    		static void Main(string[] args) 
    		{
    		   
    			Int64 x;
    
    			try 
    			{
    				//Open the File
    				StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
    				//Writeout the numbers 1 to 10 on the same line.
    				for(x=0; x < 10; x++)
    				{
    					sw.Write(x);
    				}
    
    				//close the file
    				sw.Close();
    			}
    			catch(Exception e)
    			{
    				Console.WriteLine("Exception: " + e.Message);
    			}
    			finally 
    			{
    				Console.WriteLine("Executing finally block.");
    			}
    		}
    	}
    }

Solucionar problemas

Para todos los archivos de las manipulaciones, es buena programación práctica para ajustar el código dentro de un bloque try-catch-finally para controlar errores y excepciones. En concreto, puede que desee para liberar los identificadores para ese archivo en el bloque final para que el archivo no es bloqueada indefinidamente. Algunos de los errores posibles incluyen un archivo que no existe, o un archivo que ya está en uso.

Referencias

Para obtener más información obtener información, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
StreamReader Clase
http://msdn2.Microsoft.com/en-us/library/System.IO.StreamReader (inglés) .aspx

Propiedades

Id. de artículo: 816149 - Última revisión: domingo, 10 de marzo de 2013 - Versión: 8.0
La información de este artículo se refiere a:
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2008 Express Edition
Palabras clave: 
kbfileio kbconsole kbhowtomaster kbhowto kbmt KB816149 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): 816149

Enviar comentarios