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

Seleccione idioma Seleccione idioma
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

En este artículo paso a paso se describe cómo leer y escribir en un archivo de texto mediante Visual C#.

Requisitos

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

Leer y escribir archivos de texto

La Leer un archivo de texto sección de este artículo describe cómo utilizar la clase StreamReader para leer un archivo de texto. La 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. Puede pasar la ruta de acceso de un archivo de texto para el constructor de la clase StreamReader para abrir el archivo automáticamente. El método ReadLine lee cada línea de texto e incrementa el puntero de archivo a la línea siguiente a medida que lee. Cuando el método ReadLine alcanza el 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 menú archivo , elija nuevoy, a continuación, haga clic en proyecto.
  4. Haga clic en Proyectos de Visual C# en Tipos de proyectoy, a continuación, haga clic en Aplicación de consola en plantillas

    Nota En Visual Studio 2005 o Visual Studio 2008, haga clic en Visual C#<b00> </b00> en Tipos de proyectoy, a continuación, haga clic en Aplicación de consola en plantillas.
  5. Al principio del archivo Class1.cs, agregue el código siguiente:
    using System.IO;
    Nota En Visual Studio 2005 o Visual Studio 2008, el archivo predeterminado es Program.cs.
  6. Agregue el código siguiente 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 menú Depurar , haga clic en Iniciar para compilar y ejecutar la aplicación. ENTRAR para cerrar la ventana de la consola. El windowdisplays de la consola 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 menú archivo , elija nuevoy, a continuación, haga clic en proyecto.
  3. Haga clic en Proyectos de Visual C# en Tipos de proyectoy, a continuación, haga clic en Aplicación de consola en plantillas.

    Nota En Visual Studio 2005 o Visual Studio 2008, haga clic en Visual C# en Tipos de proyectoy, a continuación, haga clic en Aplicación de consola CLR en plantillas.
  4. Al principio del archivo Class1.cs, agregue el código siguiente:
    using System.IO;
  5. Agregue el código siguiente 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 menú Depurar , haga clic en Iniciar para compilar y ejecutar la aplicación. Este código crea un archivo denominado Test.txt en la unidad C. de Test.txt abierto en un editor de texto como Notepad.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, escribir y cerrar el archivo de texto. A diferencia del ejemplo anterior, este código pasa dos parámetros adicionales para el constructor. El primer parámetro es la ruta de acceso y el nombre de archivo del archivo. El segundo parámetro es True, especifica que el archivo se abre en modo para anexar. Si se especifica False para el segundo parámetro, el contenido del archivo se sobrescribe cada vez que ejecute el código. El tercer 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 que el método Write no incrusta automáticamente un retorno de carro o salto de línea de combinación de caracteres (CR/LF). Esto es útil cuando desea escribir un carácter a la vez.
  1. Inicie Visual Studio.
  2. En el menú archivo , elija nuevoy, a continuación, haga clic en proyecto.
  3. Haga clic en Proyectos de Visual C# en Tipos de proyectoy, a continuación, haga clic en Aplicación de consola en plantillas

    Nota En Visual Studio 2005 o Visual Studio 2008, haga clic en Visual C# en Tipos de proyectoy, a continuación, haga clic en Aplicación de consola en plantillas
  4. Al principio del archivo Class1.cs , agregue el código siguiente:
    using System.IO;
    using System.Text;
    Nota En Visual Studio 2005 o Visual Studio 2008, el archivo predeterminado es Program.cs.
  5. Agregue el código siguiente 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 menú Depurar , haga clic enIniciar para compilar y ejecutar la aplicación. Este archivo crea código denominado Test1.txt en la unidad C. Test1.txt de abrir en un editor de texto tal asNotepad. 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.");
    			}
    		}
    	}
    }

Solución de problemas

Para todas las manipulaciones de archivo, es buena práctica de programación ajustar el código dentro de un bloque try-catch-finally para controlar errores y excepciones. En concreto, desea liberar identificadores para ese archivo en el bloque final, de modo que el archivo no está bloqueado de forma indefinida. Algunos errores posibles incluyen un archivo que no existe, o un archivo que ya está en uso.

Referencias

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

Propiedades

Id. de artículo: 816149 - Última revisión: viernes, 7 de marzo de 2014 - Versión: 10.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

 

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