Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Usando StreamReader y StreamWriter
Manejo de Archivos de Texto en .NET Usando StreamReader y StreamWriter
2
Introducción Hasta ahora, los programas que hacíamos no persistían una vez cerrada la aplicación. Necesitamos un medio para poder almacenar la información y unas librerías que nos ayuden a manejar estos medios de almacenamiento.
3
Archivos de texto en c# Los archivos de texto son Archivos que contienen únicamente caracteres (letras, números, símbolos, etc...) Fácil de manejar: no hay que procesar ningún tipo de formateo y pueden ser modificados desde afuera del programa con cualquier editor (lease notepad, por ejemplo). En general, se van leyendo renglones enteros hasta encontrar el final del archivo.
4
Archivos de texto en c# C# provee varias maneras de leer y escribir
En este curso vamos a utilizar las clases StreamReader y StreamWriter. Ambas se encuentran dentro de la librería System.IO (Input/Output) Dentro de esta librería existen, también, varias clases que proveen funcionalidad para interactuar con el File System.
5
StreamReader Clase que permite leer un archivo de texto existente.
Al instanciarlo, el parámetro que se le pasa al constructor es la ruta del archivo. Contiene los siguientes métodos (entre otros): Read(): lee el siguiente carácter. ReadLine(): lee la siguiente línea. ReadToEnd(): lee hasta el final del stream. Close(): cierra el acceso al stream. Contiene las siguientes propiedades (entre otras): EndOfStream indica si se ha llegado al final del stream. (bool) (Al leer un archivo de texto es necesario saberlo, ya que de intentar leer mas allá del final del mismo, el sistema operativo arrojará un error.)
6
StreamReader - Ejemplo
StreamReader MiObjetoArchivo = new StreamReader(“MiArchivoEnElDisco.txt"); // leo cada linea y la agrego en una Lista List<string> ListaAlumnos = new List<string>(); While (! MiObjetoArchivo.EndOfStream) { string linea = MiObjetoArchivo.ReadLine(); // Proceso la linea según el ejercicio ListaAlumnos.Add(línea); } //como terminé de leer, cierro el archivo MiObjetoArchivo.Close();
7
StreamWriter Clase que permite escribir un nuevo archivo de texto o agregar contenido al final de uno existente. Al declararlo, el constructor puede recibir como primer parámetro la ruta del archivo a escribir y el segundo le indica si debe escribir un nuevo archivo, o agregar al final (en caso de que ya exista). De no indicarlo, se creará un nuevo archivo. Contiene los siguientes métodos (entre otros): Write(string textoaGrabar): escribe un string en el archivo. WriteLine(string textoaGrabar): escribe un string en el archivo y agrega un salto de línea al final. Close(): cierra el acceso al stream. No requiere propiedad EndOfStream ya que el fin del archivo es ilimitado (solo depende de factores externos como capacidad de disco, memoria, etc).
8
StreamWriter - Ejemplo
En el siguiente ejemplo, recorreremos una lista de objetos de tipo Persona y se pasará su contenido a un archivo de texto con el siguiente formato: Messi, Lionel Suarez, Luis Neymar, Junior Persona P1=new Persona(); P1.Nombre=“Lionel”; P1.Apellido=“Messi”; Persona P2=new Persona(); P2.Nombre=“Luis”; P2.Apellido=“Suarez”; Persona P3=new Persona(); P3.Nombre=“Junior”; P3.Apellido=“Neymar”; List<Persona> listaPersonas = new List<Persona>(); listaPersonas.Add(P1); listaPersonas.Add(P2); listaPersonas.Add(P3); //Abro el archivo para escritura StreamWriter MiObjetoArchivo = new StreamWriter(“miArchivo.txt”); // por cada persona, escribo el contenido foreach (Persona UnaPersona in listaPersonas) { MiObjetoArchivo.WriteLine(UnaPersona.Apellido+”,”+UnaPersona.Nombre); } // cierro el acceso al stream MiObjetoEscritor.Close();
9
Consideraciones Generales
Todo el acceso a streams (lectura o escritura) es forward-only: esto quiere decir que solo es posible leer o escribir hacia adelante, nunca hacia atrás. Si quiero reemplazar una línea entonces deberé crear un nuevo archivo e ir moviendo sus líneas y cuando llego a la deseada inserto la nueva línea. Luego continuo con el resto. ¡Garrón!
10
Métodos del File System
Existen también muchas Clases en la librería System.IO para el manejo de archivos en el sistema operativo. File.Exists(rutadelArchivo): devuelve si el archivo indicado existe Directory.Exists(ruta): devuelve si el directorio indicado existe File.Delete(rutadelArchivo): borra el archivo indicado Investigar mas!
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.