Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

POO Unidad 6 (Flujos y Archivos), Guías, Proyectos, Investigaciones de Programación Orientada a Objetos

Resumen de Unidad 6 de programación orientada a objetos. Conceptos principales y ejercicios de ejemplo en c#.

Tipo: Guías, Proyectos, Investigaciones

2019/2020
En oferta
30 Puntos
Discount

Oferta a tiempo limitado


Subido el 28/09/2020

lalo00
lalo00 🇲🇽

2.7

(3)

1 documento

1 / 21

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE TIJUANA
SUBDIRECCIÓN ACADÉMICA DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN
SEMESTRE ENERO JUNIO 2020
ING. EN SISTEMAS COMPUTACIONALES
PROGRAMACIÓN ORIENTADA A OBJETOS (AED-1286 SC2A)
UNIDAD VI: Flujos y Archivos
Alumno: 19211641 Flores Sandoval Diego Eduardo
MAESTRA: LUZ ELENA CORTEZ GALVÁN
ENTREGA: 26 de junio de 2020
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
Discount

En oferta

Vista previa parcial del texto

¡Descarga POO Unidad 6 (Flujos y Archivos) y más Guías, Proyectos, Investigaciones en PDF de Programación Orientada a Objetos solo en Docsity!

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE TIJUANA

SUBDIRECCIÓN ACADÉMICA DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN

SEMESTRE ENERO – JUNIO 2020

ING. EN SISTEMAS COMPUTACIONALES

PROGRAMACIÓN ORIENTADA A OBJETOS (AED-1286 SC2A)

UNIDAD VI : Flujos y Archivos

Alumno : 19211641 Flores Sandoval Diego Eduardo

MAESTRA: LUZ ELENA CORTEZ GALVÁN

ENTREGA : 26 de junio de 2020

ÍNDICE

  • 6.1 Archivo
    • ¿Qué es un archivo?
    • Clasificaciones de archivos
  • 6.2 Flujo
    • ¿Qué es?.........................................................................................................................................
    • Clasificaciones de flujos..................................................................................................................
  • 6.3 - Operaciones en Archivos de Texto
    • TextWriter
    • TextReader
  • 6.4 Operaciones en Archivos Binarios
    • BinaryWriter
    • BinaryReader
  • 6.5 Ejemplos
    • Archivos de Texto
    • Archivos Binarios
  • Bibliografía

Escritura : Se utiliza la clase StreamWiter para todas las funciones de flujo de escritura. StreamWriter

está diseñado para la salida de caracteres en una codificación particular, mientras que las clases

derivadas de Stream están diseñadas para la entrada y salida de bytes.

StreamWriter usa de manera predeterminada una instancia de UTF8Encoding a menos que se

especifique lo contrario. Esta instancia de UTF8Encodingse construye sin una marca de orden de

bytes ( BOM ), por lo que su método GetPreamble devuelve una matriz de bytes vacía. La codificación

UTF - 8 predeterminada para este constructor genera una excepción en bytes no válidos. Este

comportamiento es diferente del comportamiento proporcionado por el objeto de codificación en

la propiedad Encoding.UTF8. Para especificar una lista de materiales y determinar si se genera una

excepción en bytes no válidos, utilice un constructor que acepte un objeto de codificación como

parámetro, como StreamWriter ( String , Boolean , Encoding ) o StreamWriter.

Lectura : Se utiliza la clase StreamReader para todas las funciones de flujo de escritura.

StreamReader está diseñado para la entrada de caracteres en una codificación particular, mientras

que la clase Stream está diseñada para la entrada y salida de bytes. Use StreamReader para leer

líneas de información de un archivo de texto estándar.

StreamReader usa de manera predeterminada la codificación UTF- 8 a menos que se especifique lo

contrario, en lugar de usar la página de códigos ANSI para el sistema actual. UTF- 8 maneja los

caracteres Unicode correctamente y proporciona resultados consistentes en versiones localizadas

del sistema operativo. Si obtiene la codificación de caracteres actual utilizando la propiedad

CurrentEncoding , el valor no es confiable hasta después del primer método de lectura, ya que la

detección automática de codificación no se realiza hasta la primera llamada a un método de lectura.

6.3- Operaciones en Archivos de Texto TextWriter

Close() : Cierra el sistema de escritura actual y libera todos los recursos del sistema asociados al

sistema de escritura.

CreateObjRef(Type): Crea un objeto que contiene toda la información relevante necesaria para

generar un proxy utilizado para comunicarse con un objeto remoto.(Heredado de

MarshalByRefObject)

Dispose(): Libera todos los recursos usados por el objeto TextWriter.

Dispose(Boolean): Libera los recursos no administrados utilizados por TextWriter y, opcionalmente,

libera también los recursos administrados.

DisposeAsync(): Libera de forma asincrónica todos los recursos que usa el objeto TextWriter.

Equals(Object): Determina si el objeto especificado es igual al objeto actual.(Heredado de Object)

Flush(): Borra todos los búferes del sistema de escritura actual y hace que todos los datos

almacenados en el búfer se escriban en el dispositivo subyacente.

FlushAsync(): Borra asincrónicamente todos los búferes del sistema de escritura actual y hace que

todos los datos almacenados en el búfer se escriban en el dispositivo subyacente.

GetHashCode(): Sirve como la función hash predeterminada.(Heredado de Object)

GetLifetimeService(): Recupera el objeto de servicio de duración actual que controla la directiva de

duración de esta instancia.(Heredado de MarshalByRefObject)

GetType(): Obtiene el Type de la instancia actual.(Heredado de Object)

InitializeLifetimeService(): Obtiene un objeto de servicio de duración para controlar la directiva de

duración de esta instancia.(Heredado de MarshalByRefObject)

MemberwiseClone(): Crea una copia superficial del Object actual.(Heredado de Object)

MemberwiseClone(Boolean): Crea una copia superficial del objeto MarshalByRefObject

actual.(Heredado de MarshalByRefObject)

Synchronized(TextWriter): Crea un contenedor seguro para subprocesos en torno al TextWriter

especificado.

ToString(): Devuelve una cadena que representa el objeto actual.(Heredado de Object)

Write(Boolean): Escribe la representación de texto de un valor Boolean en la secuencia de texto.

Write(Char): Escribe un carácter en la secuencia de texto.

Write(Char[]): Escribe una matriz de caracteres en la secuencia de texto.

Write(Char[], Int32, Int32): Escribe una submatriz de caracteres en la secuencia de texto.

Write(Decimal): Escribe la representación de texto de un valor decimal en la secuencia de texto.

Write(Double): Escribe la representación de texto de un punto flotante de 8 bytes en la secuencia

de texto.

Write(Int32): Escribe la representación de texto de un entero con signo de 4 bytes en la secuencia

de texto.

Write(Int64): Escribe la representación de texto de un entero con signo de 8 bytes en la secuencia

de texto.

Write(Object): Escribe la representación de texto de un objeto en la secuencia de texto mediante

una llamada al método ToString en ese objeto.

Write(ReadOnlySpan): Escribe un intervalo de caracteres en la secuencia de texto.

Write(Single): Escribe la representación de texto de un valor de punto flotante de 4 bytes en la

secuencia de texto.

Write(String): Escribe una cadena en la secuencia de texto.

WriteLine(Int32): Escribe la representación de texto de un entero con signo de 4 bytes seguida de

un terminador de línea en la secuencia de texto.

WriteLine(Int64): Escribe la representación de texto de un entero con signo de 8 bytes seguida de

un terminador de línea en la secuencia de texto.

WriteLine(Object): Escribe la representación de texto de un objeto mediante una llamada al método

ToString en ese objeto, seguida de un terminador de línea en la secuencia de texto.

WriteLine(ReadOnlySpan): Escribe la representación de texto de un intervalo de caracteres

seguida de un terminador de línea en la secuencia de texto.

WriteLine(Single): Escribe la representación de texto de un valor de punto flotante de 4 bytes

seguida de un terminador de línea en la secuencia de texto.

WriteLine(String): Escribe una cadena seguida de un terminador de línea en la secuencia de texto.

WriteLine(String, Object): Escribe una cadena con formato y una nueva línea en la secuencia de

texto con la misma semántica que el método Format(String, Object).

WriteLine(String, Object, Object): Escribe una cadena con formato y una nueva línea en la secuencia

de texto con la misma semántica que el método Format(String, Object, Object).

WriteLine(String, Object, Object, Object): Escribe una cadena con formato y una línea nueva en la

secuencia de texto con la misma semántica que Format(String, Object).

WriteLine(String, Object[]): Escribe una cadena con formato y una línea nueva en la secuencia de

texto con la misma semántica que Format(String, Object).

WriteLine(StringBuilder): Escribe la representación de texto de un generador de cadenas seguida

de un terminador de línea en la secuencia de texto.

WriteLine(UInt32): Escribe la representación de texto de un entero sin signo de 4 bytes seguida de

un terminador de línea en la secuencia de texto.

WriteLine(UInt64): Escribe la representación de texto de un entero sin signo de 8 bytes seguida de

un terminador de línea en la secuencia de texto.

WriteLineAsync(): Escribe un terminador de línea en la secuencia de texto de forma asincrónica.

WriteLineAsync(Char): Escribe un carácter seguido de un terminador de línea en la secuencia de

texto de forma asincrónica.

WriteLineAsync(Char[]): Escribe una matriz de caracteres seguida de un terminador de línea en la

secuencia de texto de forma asincrónica.

WriteLineAsync(Char[], Int32, Int32): Escribe una submatriz de caracteres seguida de un

terminador de línea en la secuencia de texto de forma asincrónica.

WriteLineAsync(ReadOnlyMemory, CancellationToken): Escribe la representación de texto

de una región de memoria de caracteres seguida de un terminador de línea en la secuencia de texto

de forma asincrónica.

WriteLineAsync(String): Escribe una cadena seguida de un terminador de línea en la secuencia de

texto de forma asincrónica.

WriteLineAsync(StringBuilder, CancellationToken): Escribe la representación de texto de un

generador de cadenas seguida de un terminador de línea en la secuencia de texto de forma

asincrónica.

TextReader

Close(): Cierra el TextReader y libera todos los recursos del sistema asociados a TextReader.

CreateObjRef(Type): Crea un objeto que contiene toda la información relevante necesaria para

generar un proxy utilizado para comunicarse con un objeto remoto.(Heredado de

MarshalByRefObject)

Dispose(): Libera todos los recursos usados por el objeto TextReader.

Dispose(Boolean): Libera los recursos no administrados utilizados por TextReader y,

opcionalmente, libera también los recursos administrados.

Equals(Object): Determina si el objeto especificado es igual al objeto actual.(Heredado de Object)

GetHashCode(): Sirve como la función hash predeterminada.(Heredado de Object)

GetLifetimeService(): Recupera el objeto de servicio de duración actual que controla la directiva

de duración de esta instancia.(Heredado de MarshalByRefObject)

GetType(): Obtiene el Type de la instancia actual.(Heredado de Object)

InitializeLifetimeService(): Obtiene un objeto de servicio de duración para controlar la directiva de

duración de esta instancia.(Heredado de MarshalByRefObject)

MemberwiseClone(): Crea una copia superficial del Object actual.(Heredado de Object)

MemberwiseClone(Boolean): Crea una copia superficial del objeto MarshalByRefObject

actual.(Heredado de MarshalByRefObject)

Peek(): Lee el siguiente carácter sin modificar el estado del sistema de lectura o el origen del

carácter. Devuelve el siguiente carácter disponible sin leerlo realmente del lector.

Read(): Lee el siguiente carácter en el lector de texto y hace avanzar la posición de los caracteres

en un carácter.

Read(Char[], Int32, Int32): Lee un número máximo de caracteres especificado en el lector actual y

escribe los datos en un búfer, comenzando en el índice especificado.

Read(Span): Lee los caracteres del lector actual y escribe los datos en el búfer especificado.

ReadAsync(Char[], Int32, Int32): Lee un número máximo de caracteres especificado en el lector de

texto actual de forma asincrónica y escribe los datos en un búfer, comenzando en el índice

especificado.

Seek(Int32, SeekOrigin): Establece la posición en el flujo actual.

ToString(): Devuelve una cadena que representa el objeto actual.(Heredado de Object)

Write(Boolean): Escribe un valor Boolean de un byte en la secuencia actual, que es 0 si es false y 1

si es true.

Write(Byte): Escribe un byte sin signo en la secuencia actual y avanza la posición de la secuencia

en un byte.

Write(Byte[]): Escribe una matriz de bytes en la secuencia subyacente.

Write(Byte[], Int32, Int32): Escribe una región de una matriz de bytes en la secuencia actual.

Write(Char): Escribe un carácter Unicode en la secuencia actual y avanza la posición actual de la

secuencia de acuerdo con el Encoding utilizado y los caracteres específicos escritos en la

secuencia.

Write(Char[]): Escribe una matriz de caracteres en la secuencia actual y avanza la posición actual

de la secuencia de acuerdo con el Encoding utilizado y los caracteres específicos escritos en esa

secuencia.

Write(Char[], Int32, Int32): Escribe una sección de una matriz de caracteres en la secuencia actual

y avanza la posición actual de la secuencia de acuerdo con el Encoding utilizado y quizás los

caracteres específicos que se escriben en la secuencia.

Write(Decimal): Escribe un valor decimal en la secuencia actual y avanza la posición de la

secuencia en dieciséis bytes.

Write(Double): Escribe un valor de punto flotante de ocho bytes en la secuencia actual y avanza la

posición de la secuencia en ocho bytes.

Write(Int16): Escribe un entero con signo de dos bytes en la secuencia actual y avanza la posición

de la secuencia en dos bytes.

Write(Int32): Escribe un entero con signo de cuatro bytes en la secuencia actual y avanza la

posición de la secuencia en cuatro bytes.

Write(Int64): Escribe un entero con signo de ocho bytes en la secuencia actual y avanza la posición

de la secuencia en ocho bytes.

Write(ReadOnlySpan): Escribe un intervalo de bytes en la secuencia actual.

Write(ReadOnlySpan): Escribe un intervalo de caracteres en la secuencia actual y avanza la

posición actual de la secuencia de acuerdo con el elemento Encoding utilizado y quizás los

caracteres específicos que se escriben en la secuencia.

Write(SByte): Escribe un byte con signo en la secuencia actual y avanza la posición de la secuencia

en un byte.

Write(Single): Escribe un valor de punto flotante de cuatro bytes en la secuencia actual y avanza la

posición de la secuencia en cuatro bytes.

Write(String): Escribe una cadena de longitud prefijada en esta secuencia en la codificación actual

de BinaryWriter y hace avanzar la posición actual de la secuencia de acuerdo con la codificación

utilizada y los caracteres específicos escritos en dicha secuencia.

Write(UInt16): Escribe un entero sin signo de dos bytes en la secuencia actual y avanza la posición

de la secuencia en dos bytes.

Write(UInt32): Escribe un entero sin signo de cuatro bytes en la secuencia actual y avanza la

posición de la secuencia en cuatro bytes.

Write(UInt64): Escribe un entero sin signo de ocho bytes en la secuencia actual y avanza la

posición de la secuencia en ocho bytes.

Write7BitEncodedInt(Int32): Escribe un entero de 32 bits en formato comprimido.

BinaryReader

Close(): Cierra el lector actual y la secuencia subyacente.

Dispose(): Libera todos los recursos usados por la instancia actual de la clase BinaryReader.

Equals(Object): Determina si el objeto especificado es igual al objeto actual.(Heredado de Object)

FillBuffer(Int32): Rellena el búfer interno con el número especificado de bytes leídos de la

secuencia.

GetHashCode(): Sirve como la función hash predeterminada.(Heredado de Object)

GetType(): Obtiene el Type de la instancia actual.(Heredado de Object)

MemberwiseClone(): Crea una copia superficial del Object actual.(Heredado de Object)

PeekChar(): Devuelve el siguiente carácter disponible y no hace avanzar la posición de bytes o

caracteres.

Read(): Lee los caracteres de la secuencia subyacente y hace avanzar la posición actual de la

secuencia de acuerdo con la Encoding usada y el carácter concreto que se lea de la secuencia.

Read7BitEncodedInt(): Lee un entero de 32 bits en formato comprimido.

ReadBoolean(): Lee un valor Boolean de la secuencia actual y hace avanzar un byte la posición

actual de la secuencia.

ReadByte(): Lee el siguiente byte de la secuencia actual y hace avanzar un byte la posición actual

de la secuencia.

ReadBytes(Int32): Lee el número especificado de bytes de la secuencia actual en una matriz de

bytes y hace avanzar la posición actual en función del número de bytes leídos.

ReadChar(): Lee el siguiente carácter de la secuencia actual y hace avanzar la posición actual de la

secuencia de acuerdo con la Encoding usada y el carácter concreto que se lee de la secuencia.

6.5 Ejemplos Archivos de Texto

Código:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO;//<----Librería para manejo de archivos namespace ejemplo_ArchivoTexto { public class TextoCaracteres { //campos de la clase StreamWriter sw = null; //declaración flujo de escritura StreamReader sr = null; //declaración flujo de lectura string str; //método para crear el archivo public void CrearArchivo(string nomArchivo) { try { // Crea flujo de escritura hacia el archivo doc.txt, si el archivo existe sobreescribe su contenido. sw = new StreamWriter(nomArchivo); // Lee una línea de la entrada estándar Console.WriteLine("Escriba una línea de texto para introducir al archivo creado:"); str = Console.ReadLine(); // Se introduce la línea leída dentro del archivo creado sw.WriteLine(str); } catch (IOException es) { Console.WriteLine("Mensaje del Error: " + es.Message); Console.WriteLine("Ruta del Error: " + es.StackTrace); } finally { // Cierra el flujo. if (sw != null) sw.Close(); //Mensaje del finally Console.WriteLine("Bloque Finally siempre se ejecuta. Presiona enter para continuar..."); Console.ReadKey(); } } //método para leer el archivo public void LeerArchivo(string nomArchivo)

if (File.Exists(nomArchivo)) { try { // Crea flujo de lectura desde el archivo doc.txt sr = new StreamReader(nomArchivo); // Lectura de la línea del archivo str = sr.ReadLine(); Console.WriteLine(str); } catch (IOException le) { Console.WriteLine("Mensaje del Error: " + le.Message); Console.WriteLine("Ruta del Error: " + le.StackTrace); } finally { // Cierra el flujo if (sr != null) sr.Close(); //Mensaje del finally Console.WriteLine("Bloque Finally siempre se ejecuta. Presiona enter para continuar..."); Console.ReadKey(); } } else { Console.Write("Archivo no existente, presione "enter" para regresar..."); } } } class Program { static void Main(string[] args) { //Variables globales auxiliares char opc = 'x'; string nomArchivo = ""; //Creación de objeto TextoCaracteres tc = new TextoCaracteres(); do { Console.Clear(); Console.WriteLine("-----------MENÚ----------"); Console.Write("a) Crear Archivo.\nb) Leer el Archivo.\nc) Salir del programa\n\nSelecciona una opción escribiendo la letra: "); try { opc = Convert.ToChar(Console.ReadLine()); } catch (FormatException f) {

Salida (Creación de archivo):

Salida (Lectura de archivo):

Archivos Binarios

Código:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; //<---- Librería para manejo de archivos namespace ejemplo_ArchivoBinario { class ArchivoBinario { //declaración de flujos BinaryWriter bw = null; //flujo salida - escritura de datos BinaryReader br = null; //flujo entrada - lectura de datos //campos de la clase string nombre, apellido; public void CrearArchivo(string nomArchivo) { try { //creación del flujo para escribir datos al archivo bw = new BinaryWriter(new FileStream(nomArchivo, FileMode.Create, FileAccess.Write)); //captura de datos Console.Clear(); Console.Write("Escribe tu nombre : "); nombre = Console.ReadLine(); Console.Write("Escribe tu apellido : "); apellido = Console.ReadLine(); bw.Write(nombre); bw.Write(apellido); } catch (IOException es) { Console.WriteLine("\nMensaje del Error : " + es.Message); Console.WriteLine("\nRuta del Error : " + es.StackTrace); } finally { if (bw != null) bw.Close(); //cierra flujo escritura Console.Write("Presione cualquier tecla para regresar al Menú."); Console.ReadKey(); } } public void MostrarArchivo(string nomArchivo) { try { //verifica si existe el archivo

catch (FormatException f) { Console.WriteLine("Error: {0}\nPresiona "enter" para reintentar...", f.Message); } switch (opc) { case 'a': case 'A': Console.Clear(); Console.Write("Escribe el nombre del archivo que se creará (con su respectiva extensión): "); nomArchivo = Console.ReadLine(); //Ejecución de método para creación de archivo tc.CrearArchivo(nomArchivo); break; case 'b': case 'B': Console.Clear(); Console.Write("Escribe el nombre del archivo que quieres leer (con su respectiva extensión): "); nomArchivo = Console.ReadLine(); //Ejecución de método para creación de archivo tc.MostrarArchivo(nomArchivo); break; case 'c': case 'C': Console.WriteLine("Presiona cualquier tecla para salir del programa..."); Console.ReadKey(); break; default: Console.Write("Opción no disponible(presiona "enter" para reintentar) "); Console.ReadKey(); break; } } while (opc != 'c' && opc != 'C'); } } }

Salida (Menú):

Salida (Creación de archivo):

Salida (Lectura de archivo):