Usar visual C# para leer y escribir en un archivo de texto

Este artículo le ayuda a leer y escribir en un archivo de texto mediante Visual C#.

Versión del producto original:   Visual Studio
Número KB original:   816149

Resumen

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

Leer un archivo de texto

El código siguiente usa la StreamReader clase para abrir, leer y cerrar el archivo de texto. Puede pasar la ruta de acceso de un archivo de texto al StreamReader constructor para abrir el archivo automáticamente. El método lee cada línea de texto e incrementa el puntero ReadLine de archivo a la siguiente línea a medida que lee. Cuando el ReadLine método llega al final del archivo, devuelve una referencia nula. Para obtener más información, vea Clase StreamReader.

  1. Cree un archivo de texto de ejemplo en Bloc de notas. Siga estos pasos:

    1. Pegue el texto de hello world en Bloc de notas.
    2. Guarde el archivo como Sample.txt.
  2. Inicie Microsoft Visual Studio.

  3. En el menú Archivo, elija Nuevo y, a continuación, seleccione Project.

  4. Seleccione Proyectos C# visual en Project y, a continuación, seleccione Aplicación de consola en Plantillas.

  5. Agregue el siguiente código al principio del archivo Class1.cs:

    using System.IO;
    
  6. Agregue el siguiente código al Main método:

    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 line 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, seleccione Inicio para compilar y ejecutar la aplicación. Presione ENTRAR para cerrar la ventana Consola. La ventana Consola muestra el contenido del Sample.txt archivo:

    Hello world
    

Escribir un archivo de texto (ejemplo 1)

El código siguiente usa la StreamWriter clase para abrir, escribir y cerrar el archivo de texto. De forma similar a la clase, puede pasar la ruta de acceso de un archivo de texto al constructor para StreamReader StreamWriter abrir el archivo automáticamente. El WriteLine método 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, seleccione Project.

  3. Seleccione Proyectos C# visual en Project y, a continuación, seleccione Aplicación de consola en Plantillas.

  4. Agregue el siguiente código al principio del archivo Class1.cs:

    using System.IO;
    
  5. Agregue el siguiente código al Main método:

    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, seleccione Inicio para compilar y ejecutar la aplicación. Este código crea un archivo denominado Test.txt en la unidad C. AbraTest.txten un editor de texto como 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 usa la StreamWriter clase para abrir, escribir y 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 del archivo y el nombre del archivo. El segundo parámetro, true , especifica que el archivo se abre en modo append. Si especifica para el segundo parámetro, el contenido del archivo se sobrescribe false cada vez que ejecute el código. El tercer parámetro especifica Unicode , de modo que codifica el archivo en formato StreamWriter Unicode. También puede especificar los siguientes métodos de codificación para el tercer parámetro:

  • ASC11
  • Unicode
  • UTF7
  • UTF8

El método es similar al método, excepto que el método no inserta automáticamente una combinación de caracteres de retorno de carro o de avance de Write WriteLine línea Write (CR/LF). Es útil cuando quieres 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 C# visuales en Project y, a continuación, haga clic en Aplicación de consola en Plantillas.

  4. Agregue el siguiente código al principio del archivo Class1.cs:

    using System.IO;
    using System.Text;
    
  5. Agregue el siguiente código al Main método:

    Int64 x;
    try
    {
        //Open the File
        StreamWriter sw = new StreamWriter("C:\\Test1.txt", true, Encoding.ASCII);
    
        //Write out 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, seleccione Inicio para compilar y ejecutar la aplicación. Este código crea un archivo denominado Test1.txt en la unidad C. AbraTest1.txten un editor de texto como Bloc de notas. Test1.txt contiene una sola línea de texto: 0123456789.

Descripción de código completa para 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.");
            }
        }
    }
}

Lista de código completa para 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.");
            }
        }
    }
}

Lista de código completa para 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 todas las manipulaciones de archivos, es una buena práctica de programación ajustar el código dentro de un bloque para controlar errores try-catch-finally y excepciones. En concreto, es posible que desee liberar controladores en el archivo en el bloque final para que el archivo no esté bloqueado indefinidamente. Algunos errores posibles incluyen un archivo que no existe o un archivo que ya está en uso.