Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


8. Manejo de ficheros

8.1. Escritura en un fichero de texto

Cuando queramos manipular un fichero, siempre deberemos hacerlo en tres pasos:

Eso sí, no siempre conseguiremos realizar esas operaciones, así que además tendremos que comprobar los posibles errores. Por ejemplo, puede ocurrir que intentemos abrir un fichero que realmente no exista, o que tratemos de escribir en un dispositivo que sea sólo de lectura.

Vamos a ver un ejemplo, que cree un fichero de texto y escriba algo en él:

// Ejemplo_08_01a.cs
// Escritura en un fichero de texto
// Introducción a C#, por Nacho Cabanes

using System.IO;   // Para StreamWriter

public class Ejemplo_08_01a
{
    public static void Main()
    {
        StreamWriter fichero;

        fichero = File.CreateText("prueba.txt");
        fichero.WriteLine("Esto es una línea");
        fichero.Write("Esto es otra");
        fichero.WriteLine(" y esto es continuación de la anterior");
        fichero.Close();    
    }  
}

Hay varias cosas que comentar sobre este programa:

Una forma alternativa de crear el fichero es no usar "File.CreateText", sino un constructor que reciba el nombre de fichero, así:

// Ejemplo_08_01b.cs
// Escritura en un fichero de texto, con constructor
// Introducción a C#, por Nacho Cabanes

using System.IO;   // Para StreamWriter

public class Ejemplo_08_01b
{
    public static void Main()
    {
        StreamWriter fichero = new StreamWriter("prueba.txt");
        fichero.WriteLine("Esto es una línea");
        fichero.Write("Esto es otra");
        fichero.WriteLine(" y esto es continuación de la anterior");
        fichero.Close();    
    }  
}

Existe otra sintaxis, más compacta, que nos permite olvidarnos (hasta cierto punto) de cerrar el fichero, empleando la orden "using" para delimitar el bloque que lee datos del fichero, de esta forma:

// Ejemplo_08_01c.cs
// Escritura en un fichero de texto, con "using"
// Introducción a C#, por Nacho Cabanes

using System.IO;   // Para StreamWriter

public class Ejemplo_08_01c
{
    public static void Main()
    {
        using (StreamWriter fichero = new StreamWriter("prueba.txt"))
        {
            fichero.WriteLine("Esto es una línea");
            fichero.Write("Esto es otra");
            fichero.WriteLine(" y esto es continuación de la anterior");
        }
    }  
}

Ejercicios propuestos:

Ejercicio propuesto 8.1.1: Crea un programa que vaya leyendo las frases que el usuario teclea y las guarde en un fichero de texto llamado "registroDeUsuario.txt". Terminará cuando la frase introducida sea "fin" (esa frase no deberá guardarse en el fichero).
Ejercicio propuesto 8.1.2: Crea una versión de la base de datos de ficheros (ejercicio 5.2.3), de modo que todos los datos se vuelquen a un fichero de texto al terminar la ejecución del programa.
Ejercicio propuesto 8.1.3: Amplia el proyecto Libro (ejercicio 7.7.8), de modo que todos los datos se vuelquen a un fichero de texto al terminar la ejecución del programa.