Está en la página 1de 4

12/1/24, 12:46 Introducción a C#, por Nacho Cabanes - Tema 7 - manejo de ficheros

Introducción a C# (Nota: Estás viendo una versión del curso


antigua, creada en 2009. Es recomendable que sigas la versión
Por Nacho Cabanes, versión 0.93 de 16-abr-2010
2015, mucho más actualizada, con contenidos más detallados,
Indice Anterior Siguiente Versión 2015 Página oficial
más ejemplos y más ejercicios propuestos)

7. Manejo de ficheros
7.1. Escritura en un fichero de texto
Para manejar ficheros, siempre deberemos realizar tres operaciones básicas:

Abrir el fichero.
Leer datos de él o escribir datos en él.
Cerrar el fichero.

Eso sí, no siempre podremos 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
queramos 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 en C# nº 70 */
/* ejemplo70.cs */
/* */
/* Escritura en un fichero */
/* de texto */
/* */
/* Introduccion a C#, */
/* Nacho Cabanes */
/*---------------------------*/

using System;
using System.IO; // Para StreamWriter

public class Ejemplo70


{

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");

https://www.nachocabanes.com/csharp/curso/csharp07.php 1/4
12/1/24, 12:46 Introducción a C#, por Nacho Cabanes - Tema 7 - manejo de ficheros

fichero.Close();
}

Hay varias cosas que comentar sobre este programa:

StreamWriter es la clase que representa a un fichero en el que podemos escribir.


El fichero de texto lo creamos con el método CreateText, que pertenece a la clase File.
Para escribir en el fichero, empleamos Write y WriteLine, al igual que en la consola.
Finalmente, debemos cerrar el fichero con Close, o podr�a quedar alg�n dato sin guardar.

Ejercicios propuestos:

1. Crea un programa que vaya leyendo las frases que el usuario teclea y las guarde en un fichero de texto.
Terminará cuando la frase introducida sea "fin" (esa frase no deberá guardarse en el fichero).

7.2. Lectura de un fichero de texto


La estructura de un programa que leyera de un fichero de texto sería parecida:
/*---------------------------*/
/* Ejemplo en C# nº 71: */
/* ejemplo71.cs */
/* */
/* Lectura de un fichero de */
/* texto */
/* */
/* Introduccion a C#, */
/* Nacho Cabanes */
/*---------------------------*/

using System;
using System.IO; // Para StreamReader

public class Ejemplo71


{

public static void Main()


{
StreamReader fichero;
string linea;

fichero = File.OpenText("prueba.txt");
linea = fichero.ReadLine();
Console.WriteLine( linea );
Console.WriteLine( fichero.ReadLine() );
fichero.Close();
}

https://www.nachocabanes.com/csharp/curso/csharp07.php 2/4
12/1/24, 12:46 Introducción a C#, por Nacho Cabanes - Tema 7 - manejo de ficheros

Las diferencias son:


Para leer de un fichero no usaremos StreamWriter, sino StreamReader.
Si queremos abrir un fichero que ya existe, usaremos OpenText, en lugar de CreateText.
Para leer del fichero, usaríamos ReadLine, como hacíamos en la consola.
Nuevamente, deberemos cerrar el fichero al terminar de usarlo.

Ejercicios propuestos:
Crea un programa que lea las tres primeras líneas del fichero creado en el apartado anterior y las
muestre en pantalla.

7.3. Lectura hasta el final del fichero


Normalmente no querremos leer sólo una frase del fichero, sino procesar todo su contenido, de principio a
fin

En un fichero de texto, la forma de saber si hemos llegado al final es intentar leer una línea, y comprobar si
el resultado ha sido "null", lo que nos indicaría que no se ha podido leer y que, por tanto estamos en el final
del fichero.

Normalmente, si queremos procesar todo un fichero, esta lectura y comprobación debería ser repetitiva, así:
/*---------------------------*/
/* Ejemplo en C# nº 72: */
/* ejemplo72.cs */
/* */
/* Lectura de un fichero de */
/* texto */
/* */
/* Introduccion a C#, */
/* Nacho Cabanes */
/*---------------------------*/

using System;
using System.IO; // Para StreamReader

public class Ejemplo72


{

public static void Main()


{
StreamReader fichero;
string linea;

fichero = File.OpenText("prueba.txt");
do
{
linea = fichero.ReadLine();
https://www.nachocabanes.com/csharp/curso/csharp07.php 3/4
12/1/24, 12:46 Introducción a C#, por Nacho Cabanes - Tema 7 - manejo de ficheros

if (linea != null)
Console.WriteLine( linea );
}
while (linea != null);

fichero.Close();
}

Ejercicios propuestos:

Un programa que pida al usuario que teclee frases, y las almacene en el fichero "frases.txt". Acabará
cuando el usuario pulse Intro sin teclear nada. Después deberá mostrar el contenido del fichero.
Un programa que pregunte un nombre de fichero y muestre en pantalla el contenido de ese fichero,
haciendo una pausa después de cada 25 líneas, para que dé tiempo a leerlo. Cuando el usuario pulse
intro, se mostrarán las siguientes 25 líneas, y así hasta que termine el fichero.

(Nota: Estás viendo una versión del curso antigua, creada en 2009. Es recomendable que sigas la versión 2015, mucho más actualizada,
con contenidos más detallados, más ejemplos y más ejercicios propuestos)

Indice Anterior Siguiente Versión 2015 Página oficial

© 2009 Nacho Cabanes. Actualizado: 16-04-2010 12857 accesos desde el 16-abr-2010

https://www.nachocabanes.com/csharp/curso/csharp07.php 4/4

También podría gustarte