I) OBJETIVOS
Streams Los streams son la forma en la que se realizan operaciones de lectura/escritura desde/hacia medios de almacenamiento como pueden ser un disco o la propia memoria. Todas las clases que representan a streams heredan de la clase Stream (System.io.Stream). Clase Stream ( sus subclases) ofrecen un punto de vista sobre las distintas fuentes de datos, repositorios, etc… y aislan a los programadores de los detalles específicos del sistema operativo y los dispositivos.
Algunas de las operaciones básicas de la implementación del stream son:
El espacio de nombres System.io contiene:
Readers y Writers Las clases que se derivan de System.IO.Stream realizan la operaciones de entrada/salida basada en bytes. Los Readers y los Writers pueden tomar otros tipos de datos y leerlos o escribirlos en streams o cadenas. Clases:
Entrada y salida basica a ficheros: Clase FileStream Utilizada para leer y escribir en ficheros. Su constructor posee tres parámetros (además del nombre):
Crear un nuevo FileStream FileStream fs = new FileStream (nombre_archivo, FileMode.Open, FileAccess.Read, FileShare.Read) El Método Seek para ficheros de acceso aleatorio:
III) Practicas de laboratorio Practica 1: Acceso de lectura y escritura de un archivo La siguiente aplicación muestra la forma de crear un archivo de tipo binario y poder escribir datos como su contendo y luego hacer la lectura del contenido, para ello se utiliza librerias de gestión de Archivos de la plataforma .Net Framework en el lenguaje de programación C# class Program { private const string NOMBRE_ARCHIVO = "prueba.txt"; static void Main(string[] args) { // Creamos el archivo de datos if (File.Exists(NOMBRE_ARCHIVO)){ Console.WriteLine(
return; } FileStream fs = new
// Se crea el Writer para escribir los datos BinaryWriter bw = new BinaryWriter(fs); // Escribir los datos for (int i = 0; i <= 10; i++) { Console.WriteLine("Escribiendo {0}",i); bw.Write(i); } // cerramos el stream de escritura y el archivo bw.Close(); fs.Close(); // volvemos a abrir el archivo fs = new FileStream(NOMBRE_ARCHIVO,FileMode.Open,
// Creamos el Stream de lectura BinaryReader br = new BinaryReader(fs); // Recorremos los datos del archivo for (int i = 0; i <= 10; i++) { Console.WriteLine("Leyendo {0}",
} // Cerramos el stream y el archivo br.Close(); fs.Close(); } } Practica 2: Ejercicio de estructura de directorios y archivosLa estructura de directorios y archivos es una aplicación de la estructura de datos árbol. Los sistemas de archivos de los Sistemas Operativos manejan este tipo de estructuras. En el código siguiente se muestra un método para mostrar el contenido de un directorio, se considera solo archivos pudiendo también listar los subdirectorios. Se utiliza las Clases de información DirectoryInfo, FileInfo. public static void MostrarContenidoDirectorio() { // Información de un determinado directorio DirectoryInfo di = new DirectoryInfo("c:/"); // Arreglo de archivos que se encontraban en el
FileInfo[] diar1 = di.GetFiles(); // Mostrar todos los archivos encontrados foreach (FileInfo f in diar1) { Console.WriteLine(f.Name + "\n"); } } Practica 3: Leer un archivo de texto using System.IO; class LecturaArchivo { private const string ARCHIVO = "lineas.txt"; static void main(string[] args) { string linea; if (!File.Exists(ARCHIVO)) { Console.WriteLine("El archivo {0} no existe", ARCHIVO); return; } // StreamReader derivado de TextReader para leer un archivo StreamReader sr = File.OpenText(ARCHIVO); // leer linea a línea un archivo hasta que no exista líneas while ((linea = sr.ReadLine()) != null) { Console.WriteLine(linea); } Console.WriteLine("Fin de archivo"); sr.close(); } } IV) Trabajo para casa: Ejercicio propuesto 1:
Escriba una aplicación para mostrar el contenido de un directorio considerando los archivos y subdirectorios del mismo, también mostrar el contenido de los subdirectorios. Puedes considerar como modelo de la aplicación el comando tree de Windows. V) Referencias bibliograficas
|