Manejo de Archivos de Texto en .NET
Usando StreamReader y StreamWriter
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.
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 de a líneas o hasta
encontrar un separador.
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.
StreamReader
 Clase que permite leer un archivo de texto existente.
 Al declararlo, el parámetro que se le pasa es la ruta del archivo.
Contiene los siguientes métodos (entre otros):





Read(): lee el siguiente carácter.
ReadLine(): lee la siguiente linea.
ReadToEnd(): lee hasta el final del stream.
Peek(): igual a Read(), pero sin avanzar.
Close(): cierra el acceso al stream.
 Contiene las siguientes propiedades (entre otras):
 EndOfStream (boolean): indica si se ha llegado al final del stream.
(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.)
StreamReader - Ejemplo
StreamReader MiObjetoLector = new StreamReader("MiArchivoEnElDisco.txt");
// leo cada linea y la muestro en un MessageBox
While (! MiObjetoLector.EndOfStream)
{
string linea = MiObjetoLector.ReadLine();
MessageBox.Show(linea);
}
//como terminé de leer, cierro el reader
MiObjetoLector.Close();
StreamWriter
 Clase que permite escribir un nuevo archivo de texto o agregar contenido al
final de uno existente.
 Al declararlo, el primer parámetro indica 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): escribe un string en el archivo.
 WriteLine(string): escribe un string en el archivo y agrega un enter al final.
 Close(): cierra el acceso al stream.
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:
Nombre1,Apellido1
Nombre2,Apellido2
Nombre3,Apellido3
Dictionary<string, string> listaPersonas = new Dictionary<string, string>();
listaPersonas.Add("Nombre1", "Apellido1");
listaPersonas.Add("Nombre2", "Apellido2");
listaPersonas.Add("Nombre3", "Apellido3");
StreamWriter MiObjetoEscritor = new StreamWriter(“miArchivo.txt”);
// por cada persona, escribo el contenido
foreach (string clave in listaPersonas.Keys)
{
MiObjetoEscritor.WriteLine(clave+”,”+listaPersonas[clave]);
}
// cierro el acceso al stream
MiObjetoEscritor.Close();
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.
Métodos del File System
 Son métodos que tiene la librería 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!
Descargar

Types