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

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
Resumen
En este artículo paso a paso se describe cómo leer y escribir en un archivo de texto mediante Visual C#.

volver al principio

Requisitos

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

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.

volver al principio

Leer un archivo de texto

El código siguiente utiliza la clase StreamReader para abrir, leer y cerrar el archivo de texto. La ruta de acceso de un archivo de texto se puede pasar al constructor StreamReader para abrir el archivo automáticamente. El método ReadLine lee cada línea de texto e incrementa el puntero a la siguiente línea del archivo, como los 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 nuevo y, a continuación, haga clic en proyecto.
  4. Haga clic en Proyectos de Visual C# en Tipos de proyecto y, 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 consola. El windowdisplays de la consola el contenido del archivo ejemplo.txt.
    Hello world
volver al principio

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 nuevo y, a continuación, haga clic en proyecto.
  3. Haga clic en Proyectos de Visual C# en Tipos de proyecto y, 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 filethat se denomina 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
volver al principio

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 está abierto en modo append. 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 nuevo y, a continuación, haga clic en proyecto.
  3. Haga clic en Proyectos de Visual C# en Tipos de proyecto y, 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 enInicio para compilar y ejecutar la aplicación. Este archivo de código createsa que se denomina 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
volver al principio

Lista de código completa

  • Leer un archivo de texto
    //Read a Text Fileusing 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-1using 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 2using 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

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

volver al principio
Referencias
Para obtener más información, visite el siguiente sitio Web de Microsoft Developer Network (MSDN): volver al principio

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 816149 - Última revisión: 07/25/2015 10:58:00 - Revisión: 12.0

Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# 2008 Express Edition

  • kbfileio kbconsole kbhowtomaster kbhowto kbmt KB816149 KbMtes
Comentarios