Tarea 6.0 Cruz Sosa Aldo PDF

Title Tarea 6.0 Cruz Sosa Aldo
Course Programación orientada
Institution Instituto Tecnológico de Tijuana
Pages 27
File Size 538.3 KB
File Type PDF
Total Downloads 108
Total Views 139

Summary

ensayo de programación orientada a objetos, unidad 6...


Description

Tecnológico Nacional de México Instituto Tecnológico de Tijuana SUBDIRECCIÓN ACADÉMICA DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN SEMESTRE SEPTIEMBRE 2020 – ENERO 2021 CARRERA Ingeniería en Sistemas Computacionales. MATERIA Y SERIE Programacion Orientada a Objetos AED-1286 SC2B TITULO DE LA ACTIVIDAD Tarea 6.0 NUMERO Y NOMBRE DE LA UNIDAD A EVALUAR Unidad VI – Flujos y Archivos. NOMBRE Y NUMERO DE CONTROL DEL ALUMNO Cruz Sosa Aldo – C19210924 NOMBRE DEL MAESTRO M.C.C. LUZ ELENA CORTEZ GALVAN FECHA DE ENTREGA

28/12/2020

Tabla de contenido 6.1 – Definiciones....................................................................................................................................3 6.2 – Clasificación....................................................................................................................................7 ➔ Archivos de texto.................................................................................................................................7 ➔ Archivos binarios.................................................................................................................................8 6.3.1 – Operaciones básicas en Archivos de Texto con Flujos de Bytes.................................................9 -> Programa ejemplo en C# que utilice archivos de texto con flujos de bytes.......................................12 6.3.2 - Archivo de Texto con Flujos de Caracteres................................................................................13 Programa ejemplo en C# que utilice archivos de texto con flujos de caracteres.................................14 6.4 – Operaciones básicas en Archivos Binarios...................................................................................19 ➔ Uso y aplicaciones de archivos binarios.............................................................................................24 > Programa ejemplo en C# que utilice archivos binarios.......................................................................25 Bibliografía:...........................................................................................................................................27

2

6.1 – Definiciones. ➔ Conceptos y utilidad.

* Qué es un archivo en C#? Todos los datos que un programa utiliza durante su ejecución se encuentran en sus variables, que están almacenadas en la memoria RAM del computador. La memoria RAM es un medio de almacenamiento volátil: cuando el programa termina, o cuando el computador se apaga, todos los datos se pierden para siempre. Para que un programa pueda guardar datos de manera permanente, es necesario utilizar un medio de almacenamiento persistente, de los cuales el más importante es el disco duro. Los datos en el disco duro están organizados en archivos. Un archivo es una secuencia de datos almacenados en un medio persistente que están disponibles para ser utilizados por un programa. Todos los archivos tienen un nombre y una ubicación dentro del sistema de archivos del sistema operativo. Los datos en un archivo siguen estando presentes después de que termina el programa que lo ha creado. Un programa puede guardar sus datos en archivos para usarlos en una ejecución futura, e incluso puede leer datos desde archivos creados por otros programas. Un programa no puede manipular los datos de un archivo directamente. Para usar un archivo, un programa siempre abrir el archivo y asignarlo a una variable, que llamaremos el archivo lógico. Todas las operaciones sobre un archivo se realizan a través del archivo lógico. Dependiendo del contenido, hay muchos tipos de archivos. Nosotros nos preocuparemos sólo de los archivos de texto, que son los que contienen texto, y pueden ser abiertos y modificados usando un editor de texto como el Bloc de Notas. Los archivos de texto generalmente tienen un nombre terminado en .txt. Archivos — Programación. (s. f.). Programacion. Recuperado 10 de diciembre de 2020, de http://progra.usm.cl/apunte/materia/archivos.html#:%7E:text=Todos%20los%20datos %20que%20un,la%20memoria%20RAM%20del%20computador.&text=Un%20archivo %20es%20una%20secuencia,ser%20utilizados%20por%20un%20programa.

3

* Cual es su utilidad? Los archivos pueden tener numerosas funciones. Desde simplemente contener información de manera ordenada, como los archivos de texto, y permitir el acceso a ella por parte de programas determinados, hasta archivos ejecutables que desencadenan cierta secuencia de acciones (y de otros archivos) que tienen como resultado una acción concreta. Desde apagar el computador hasta iniciar un videojuego, todo lo que ocurre en un sistema informático ocurre a través de archivos interconectados ejecutándose por turno en la memoria del computador. N. (2020, 22 junio). Archivo en Informática. Concepto. https://concepto.de/archivoinformatico/#:%7E:text=Los%20archivos%20pueden%20tener%20numerosas %20funciones.&text=Desde%20apagar%20el%20computador%20hasta,en%20la %20memoria%20del%20computador.

* Qué es un flujo en C#? Hemos visto hasta ahora que los programas van ejecutando las líneas de código con orden. Sin embargo, hay muchas situaciones en las que es preciso alterar ese orden, o bien puede ocurrir que sea necesario que se efectúen una serie de operaciones que pueden ser distintas en otras circunstancias. Por ejemplo, si el programa pide una clave de acceso, deberá continuar con la ejecución normal en caso de que la clave introducida por el usuario sea correcta, y deberá salir del mismo en caso contrario. Pues bien: para todas estas cuestiones que, por otra parte, son muy frecuentes, tenemos las estructuras de control de flujo. Un Flujo de E/S representa una fuente de entrada y un destino de salida. Un flujo puede representar muchos tipos diferentes de fuentes y destinos, incluyendo archivos de disco, dispositivos, otros programas y arreglos de memoria. Los flujos soportan muchos tipos diferentes de datos, incluyendo bytes simples, tipos primitivos de datos, caracteres localizados, y objetos. Algunos flujos simplemente pasan datos, otros manipulan y transforman datos en formas útiles. No importa cómo trabajan internamente; todos los flujos presentan el mismo modelo simple a los programas que los usan: un flujo es una secuencia de

4

datos. Un programa usa un flujo de entrada para leer datos desde una fuente, o artículo a la vez. Los flujos de datos son secuencias de bytes. Es decir, un conjunto de bytes en un orden específico que pueden representar cualquier cosa: texto, un archivo, un objeto, una imagen. Bytes en general. Un flujo de dato sirve de puente entre la fuente de datos y la aplicación (por ejemplo, lectura de un archivo desde el disco duro), o entre la aplicación y el destino (escritura hacia un archivo del disco duro). Antes, en el antiguo mundo de C, era común crear un puntero con suficiente memoria y guardar ahí algún dato, y luego hacer algún uso de él, como guardarlo en algún archivo. Aunque este enfoque funciona, existe ciertos problemas ya que, por ejemplo, hay que saber las posiciones de los bytes, el tamaño ubicado en memoria podía ser menor al necesario y por ende habíamos de llamar a las funciones calloc y realloc para agrandar nuestro búfer, y no teníamos una forma ordenada de leer y escribir nuestros datos. Ante estos problemas, la idea de los flujos se fue desarrollando poco a poco. C++ ya incorpora el concepto, y de hecho la librería estándar de C++ hace uso de flujos para archivos (std::cin y std::cout son flujos, por ejemplo, y qué decir de istream y ifstream). Obviamente C# .NET tenía que incorporar flujos y de hecho lo hace con elegancia, con un enfoque moderno y totalmente orientado a objetos. La clase base para los flujos es System.IO.Stream, y es abstracta. Esta clase define el comportamiento básico de cualquier flujo en C# .NET. Si un flujo puede leer bytes (CanRead, Read). Si un flujo puede escribir bytes (CanWrite, Write). El desplazamiento hacia atrás y hacia adelante en el flujo de bytes (Seek, Position).  El tamaño del flujo (Length, SetLength).  La forma de descargar los datos en el destino final (Flush).

  

Gómez F., F. A. (2010, 24 noviembre). Todo sobre flujos de datos. Blogoso de Fer++. https://fermasmas.wordpress.com/2010/05/08/todo-sobre-flujos-de-datos/

5

* Cómo se clasifican? Existen dos tipos de Flujos: -Los que trabajan con Bytes -Los que trabajan con Caracteres Las clases más importantes a tener en cuenta son las siguientes, donde el sangrado de las líneas indica la herencia, es decir, DataInputStream hereda de FilterInputStream que, a su vez, hereda de InputStream. Flujos con Bytes

Flujos con caracteres

D E

Reader InputStream BufferedReader ByteArrayInputStream LineNumberReader FileInputStream CharArrayReader FilterInputStream FilterReader BufferedInputStream PushbackReader DataInputStream InputStreamReader PushbackInputStream FileReader ObjectInputStream PidedReader PidedInputStream StringReader SequenceInputStream StringBufferInputStream

S A L I D D A A T O D S E

OutputStream ByteArrayOutputStream FileOutputStream FilterOutputStream BufferedOutputStream DataOutputStream PrintStream ObjectOutputStream PipedOutputStream

E N T R A D A

D A T O S

Writer BufferedWriter CharArrayWriter FilterWriter OutputStreamWriter FileWriter PidedWriter PrintWriter StringWriter

Unidad 6 Flujos y Archivos. (s. f.). C# Flujos. Recuperado 10 de diciembre de 2020, de http://fjglez90.blogspot.com/2012/06/unidad-6-flujos-y-archivos.html

6

6.2 – Clasificación. ➔ Archivos de texto. Concepto: Los archivos de texto plano son aquellos que están compuestos únicamente por texto sin formato, solo caracteres. estos caracteres se pueden codificar de distintos modos dependiendo de la lengua usada. Se les conoce también como archivos de texto llano o texto simple por carecer de información destinada a generar formatos y tipos de letra. Un archivo de texto se puede crear o editar utilizando un editor de texto y por lo general se puede importar a cualquier procesador de texto plano como Bloc de Notas (Notepad) Las extensiones de archivos de texto permiten al sistema operativo identificar a los documentos de texto plano. Las extensiones de archivos de texto más utilizadas son: .txt. (Microsoft Windows) y .mime (MAC OS X, Linux). Características: Un archivo tipo texto es aquel que almacena información de texto plano, es decir que no contiene caracteres de control, sólo contiene caracteres imprimibles como letras, números y símbolos, por lo general del juego de caracteres ASCII. El estándar ASCII permite que los archivos de texto puedan ser intercambiados libremente y legible entre plataformas como Unix, Macintosh, Microsoft Windows, DOS. C. (2015, 5 febrero). ¿Qué son Archivos de Texto? Definición y lista de extensiones - CAVSI. Foro Tecnico. https://www.cavsi.com/preguntasrespuestas/archivos-de-texto-extensiones/

7

➔ Archivos binarios. Concepto: Un archivo binario es un archivo informático que contiene información de cualquier tipo, codificada en forma binaria para el propósito de almacenamiento y procesamiento de ordenadores. Muchos formatos binarios contienen partes que pueden ser interpretados como texto. Un archivo binario que solo contiene información de tipo textual sin información sobre el formato de este, se dice que es un archivo de texto plano. Habitualmente se contraponen los términos archivo binario y archivo de texto de forma que los primeros no contienen solamente texto. Muchos formatos binarios contienen partes que pueden ser interpretadas como texto. Un archivo binario que sólo contiene información de tipo textual sin información sobre el formato de este se dice que es un archivo de texto plano. Habitualmente se contraponen los términos 'archivo binario' y 'archivo de texto', de forma que los primeros no contienen solamente texto. Características: Un archivo binario, es un archivo cuyo contenido usa exactamente la misma representación que utiliza el computador internamente para representar la información. El contenido de un archivo binario no está pensado para ser entendible por humanos. Si es abierto con el Bloc de Notas, generalmente se verá sólo símbolos ininteligibles. Internamente, muchos computadores representan los números enteros usando cuatro bytes. Cada byte está formado por ocho bits (unos o ceros). Las diferentes combinaciones de los treinta y dos bits permiten representar 232 números diferentes. El sistema binario es aquel que numera empleando sólo ceros (0) y unos (1). Esto quiere decir que, en el marco de estos sistemas, cualquier cifra puede expresarse a partir de estos números. Este sistema es utilizado por las computadoras u ordenadores, que funcionan con un par de voltajes diferentes y que atribuyen el 0 al apagado y el 1 al encendido.

8

EcuRed. (s. f.). Archivo binario - EcuRed. Recuperado 10 de diciembre de 2020, de https://www.ecured.cu/Archivo_binario#Caracter.C3.ADsticas

6.3.1 – Operaciones básicas en Archivos de Texto con Flujos de Bytes. Normalmente, cuando se codifica un programa, se hace con la intención de que ese programa pueda interactuar con los usuarios de este, es decir, que el usuario pueda pedirle que realice cosas y pueda suministrarle datos con los que se quiere que haga algo. Una vez introducidos los datos y las órdenes, se espera que el programa manipule de alguna forma esos datos para proporcionarnos una respuesta a lo solicitado. Además, en muchas ocasiones interesa que el programa guarde los datos que se le han introducido, de forma que si el programa termina los datos no se pierdan y puedan ser recuperados en una sesión posterior. La forma más normal de hacer esto es mediante la utilización de ficheros que se guardarán en un dispositivo de memoria no volátil (normalmente un disco). A todas estas operaciones, que constituyen un flujo de información del programa con el exterior, se les conoce como Entrada/Salida (E/S). Existen dos tipos de E/S; la E/S estándar que se realiza con el terminal del usuario y la E/S a través de fichero, en la que se trabaja con ficheros de disco. Las operaciones básicas con archivos son:   



Lectura (consulta).- Esta operación consiste el leer la información contenida en fichero sin alterarla. Escritura (modificación).- Consiste en actualizar el contenido del fichero bien añadiéndole nuevos datos o borrando parte de los que contenía. Apertura.- Antes de acceder a un fichero, tanto para consultar como para actualizar su información, es necesario abrirlo. Esta operación se debe realizar previamente a las operaciones de lectura o escritura. Cierre.- Cuando se ha terminado de consultar o modificar un fichero, del mismo modo que se tuvo que abrir para realizar alguna operación de lectura/escritura sobre él.

ReadLine() Al igual que el conocido Console.ReadLine(), este método lee una línea completa de un archivo de texto hasta el cambio de línea más próximo. Al igual que su 9

equivalente de consola, StreamReader.ReadLine() no incluye en el string el carácter de cambio de línea. string linea = sr.ReadLine() ReadToEnd() Este método, por su parte, se encarga de acumular la información que hay desde la lectura anterior (que pudo haberse hecho con ReadLine(), por ejemplo) hasta el final del archivo, todo en el mismo string. string linea = sr.ReadToEnd()

Read() Finalmente, el método simple Read() se encarga de leer un caracter a la vez, lo que permite procesar símbolo por símbolo el contenido del archivo. Convenientemente, este método reconoce el cambio de línea y se lo salta como si no existiese. Cuando se encuentra con el fin de archivo, retorna un valor –1, considerando que su retorno es siempre un int (y no un char). int SigCaracter = sr.Read(); Este mismo método ofrece una declaración alternativa (sobrecarga), donde es posible leer una cantidad específica de caracteres y almacenarlos en un arreglo de enteros. char[] CharArray = new char[100]; int[] nChars = sr.Read(CharArray, 0, 100); nChars es un arreglo con los enteros retornados por el método, y será menor si es que la cantidad de caracteres que quedan en el archivo es menor de 100. StreamWriter implementa TextWriter para escribir los caracteres de una secuencia en una codificación determinada. StreamWriter está diseñado para obtener caracteres como salida en una codificación determinada, mientras que las clases derivadas de Stream están diseñadas para entrada y salida de bytes. StreamWriter utiliza de forma predeterminada una instancia de UTF8Encoding, a menos que se especifique lo contrario. Esta instancia de UTF8Encoding se construye de modo que el método Encoding.GetPreamble devuelva la marca de 10

orden de bytes Unicode escrita en UTF-8. El preámbulo de la codificación se agrega a una secuencia cuando no se anexa a una secuencia existente. Esto significa que cualquier archivo de texto que se cree con StreamWriter tendrá tres marcas de orden de bytes al principio. UTF-8 utiliza todos los caracteres Unicode correctamente y ofrece resultados coherentes en versiones traducidas del sistema operativo. Son básicamente dos los métodos propios de StreamWriter que permiten escribir hacia el stream (archivo) declarado y son los mismos que se usan para escribir en la consola: Write() y WriteLine().

WriteLine() Totalmente equivalente a Console.WriteLine(), se utiliza la misma idea, y el mismo formato, sabiendo que se estará escribiendo el texto no a la consola, sino que al stream abierto con el constructor. string linea = “Texto de prueba”; sw.WriteLine(linea); sw.WriteLine(“Los valores posibles son: {0} y {1}”, 3, 5); Write() También presente, el método simple Write(), permite escribir texto en el stream, de la misma forma que su equivalente método de la clase Console. En este caso se reconocen las siguientes alternativas de uso: Imprimir un string string linea = “Texto de prueba”; sw.Write(linea); Imprimir un caracter char caracter = ‘T’; sw.Write(caracter); M. (2012, 19 julio). Manejando archivos de texto con C#. MiguelAngel’s Blog. https://miguelangelchirinos.wordpress.com/2012/07/19/manejando-archivos-de-textocon-c/

11

-> Programa ejemplo en C# que utilice archivos de texto con flujos de bytes. using System; using System.IO; public class CEscribirBytes { public static void Main ( ) { FileStream fs = null; byte[] buffer = new byte[81]; int nbytes = 0, car; try { // Crea un flujo hacia el archivo texto.txt fs = new FileStream("texto.txt",FileMode.Create, FileAccess.Write); Console.WriteLine("Escriba el texto que desea almacenar en el archivo:"); while ((car = Console.Read()) != '\r' && (nbytes < buffer.Length)) { buffer[nbytes] = (byte)car; nbytes++; } // Escribe la línea de texto en el archivo. fs.Write(buffer, 0, nbytes); } catch(IOException e) { Console.WriteLine("Error: " + e.Message); } finally { if (fs != null) fs.Close(

12

); } } }

6.3.2 - Archivo de Texto con Flujos de Caracteres. En este caso los datos se manejan por medio de flujos de caracteres, utilizando las clases StreamWriter y StreamReader. a) Escritura. StreamWriter es una clase derivada de TextWriter. Sus constructores son: StreamWriter (string Nombre) // Abre un nuevo flujo para escribir en un archivo especificado por nombre. StreamWriter (Stream Flujo) // Utiliza un flujo existente para escribir. Los objetos de la clase StreamWriter poseen varios métodos, entre los que destacan: Write( ), WriteLine( ) y Flush( ). b) Lectura. StreamReader es una clase derivada de TextReader. Sus constructores son: StreamReader (string Nombre) // Abre un nuevo flujo para leer de un archivo especificado por nombre. StreamReader (Stream Flujo) // Utiliza un flujo existente para leer. Algunos de los métodos más importantes de la clase StreamReader son: 13

Read( ), ReadLine( ), y Peek( ).

Programación Orientada a Objetos en C# .NET. (s. f.). Programación Orientada a Objetos en C# .NET. Recuperado 15 de diciembre de 2020, de http://www.itnuevolaredo.edu.mx/takeyas/Apuntes/POO/Apuntes/09.-Archivos.pdf

Programa ejemplo ...


Similar Free PDFs