Ing. Jakeline Marcos Abed 12/30/11 Objetivos Qué es un archivo de texto ? Archivos en C#. Cómo leer y escribir datos en archivos ? Fundamentos de Programación Ing. Jakeline Marcos Abed 1 Fundamentos de programación C# Jakeline Marcos. 2 Fundamentos de programación C# Jakeline Marcos. ¿por qué necesitamos archivos? Lectura de archivos Los datos que están en la RAM son A continuación explicaremos el vocabulario asociado al uso de archivos, que es similar en casi todos los lenguajes de programación. Si deseamos procesar los datos que se encuentran en un archivo existente, debemos: 1. Abrir el archivo. 2. Leer (recibir como entrada) los datos, elemento por elemento, y colocarlos en variables. 3. Cerrar el archivo cuando terminemos de trabajar con él. temporales: se borran al apagar el equipo. Los dispositivos de almacenamiento de archivos pueden guardar los datos de manera permanente 3 Fundamentos de programación C# Jakeline Marcos. 4 Fundamentos de programación C# Jakeline Marcos. 1 Ing. Jakeline Marcos Abed 12/30/11 Escritura de archivos La lectura es secuencial… Para transferir datos de variables a un Cabe mencionar que, al leer datos de un archivo, debemos: 1. Abrir el archivo. 2. Enviar como salida (escribir) nuestros elementos en la secuencia requerida. 3. Cerrar el archivo cuando terminemos de trabajar con él. archivo, lo único que podemos hacer es trabajar elemento por elemento. Si, por ejemplo, sólo necesitamos examinar el último elemento de un archivo, tendremos que codificar un ciclo para leer un elemento a la vez hasta llegar al requerido. 5 Fundamentos de programación C# Jakeline Marcos. 6 Fundamentos de programación C# Jakeline Marcos. ¿qué Clases y métodos se utilizan? ¿qué Clases y métodos se utilizan? El método ReadLine de StreamReader. Este La clase StreamWriter. Esta clase consta de método lee toda una línea de texto y la coloca en una cadena, excluyendo el marcador de fin de línea. dos métodos principales: Write y WriteLine. Ambos escriben una cadena en un archivo, pero WriteLine agrega el marcador de fin de línea después de la cadena. También podemos usar WriteLine sin argumentos para escribir sólo un marcador de fin de línea en el archivo. Como alternativa a WriteLine podemos utilizar Write enviándole los caracteres \r\n entre comillas como argumento. 7 Fundamentos de programación C# Jakeline Marcos. 8 Fundamentos de programación C# Jakeline Marcos. 2 Ing. Jakeline Marcos Abed 12/30/11 ¿qué Clases y métodos se utilizan? ¿qué directivas son necesarias? Los métodos OpenText y CreateText de la Las clases de archivo forman parte del clase File. Éstos son métodos estáticos que nos proporcionan una nueva instancia de un flujo de texto. espacio de nombres System.IO. Como esta clase no se importa de manera automática, para hacerlo debemos usar la siguiente línea: using System.IO; en la parte superior de todos nuestros programas en los que se procesen archivos. 9 Fundamentos de programación C# Jakeline Marcos. 10 Fundamentos de programación C# Jakeline Marcos. Ejemplo de escritura: Comentarios aplicables a archivos: private void button1_Click(object sender, EventArgs e) Para especificar el nombre del archivo se { // escribe varias líneas de texto en el archivo StreamWriter salida = File.CreateText("c:\\miarchivo.txt"); salida.WriteLine("Este archivo"); salida.WriteLine("contiene tres"); salida.WriteLine("líneas de texto."); salida.Close(); } escribe: "c:\\miarchivo.txt". Se puede modificar esta ruta para crear el archivo en un lugar distinto. Si se omite el nombre de la carpeta y sólo se utiliza miarchivo.txt, el archivo se creará en una carpeta llamada debug, que está dentro de la carpeta bin del proyecto de C# actual. 11 Fundamentos de programación C# Jakeline Marcos. 12 Fundamentos de programación C# Jakeline Marcos. 3 Ing. Jakeline Marcos Abed 12/30/11 Al escribir un archivo: Ejemplo de escritura de archivos: Si el archivo ya existe su contenido string nombreArchivo = "c:\\ejemplo.txt"; original será eliminado y sustituido por las líneas nuevas. StreamWriter salida = File.CreateText(nombreArchivo); for (int líneas = 1; líneas <= 10; líneas++) { for (int i= 1; i<= líneas; i++) { salida.Write("*"); } salida.WriteLine(); } salida.Close(); 13 Fundamentos de programación C# Jakeline Marcos. 14 Fundamentos de programación C# Jakeline Marcos. Ejemplo de Lectura de archivos: // lee el archivo línea por línea StreamReader entrada = File.OpenText("c:\\miarchivo.txt"); string línea; línea = entrada.ReadLine(); while (línea != null) { textBox1.AppendText(línea + "\r\n"); línea = entrada.ReadLine(); } entrada.Close(); AppendText agrega líneas en el textBox1, que es multilínea. 15 Fundamentos de programación C# Jakeline Marcos. 4