26
Leyendo y Escribiendo Archivos Jonathan Aldave Mendoza Perú Jairo Alberto Contreras Barragán Microsoft Student Partner - Colombia

Open And Reading Files

Embed Size (px)

Citation preview

Page 1: Open And Reading Files

Leyendo y Escribiendo Archivos

Jonathan Aldave MendozaPerú

Jairo Alberto Contreras BarragánMicrosoft Student Partner - Colombia

Page 2: Open And Reading Files

Agenda

•Clases File y Directory•Enumeraciones FileAccess y FileMode

Manejando archivos y directorios

•Clase StreamFile•Facilitando tareas de Lectura y Escritura

Lectura y Escritura de Archivos

•Uso de la memoria•Aplicando Búferes

Mas allá de los archivos físicos

Page 3: Open And Reading Files

Antes de comenzar

Stream

FileStream MemoryStream BufferedStream …

QUE ES UN STREAM?

Page 4: Open And Reading Files

static void leerStream(Stream stream) { stream.Position = 0;

while (stream.Position != stream.Length) { Console.Write(stream.ReadByte()); } }

Antes de comenzar

Page 5: Open And Reading Files

Manejando archivos y directorios

File Class

Directory Class

- Abrir y Crear archivos- Operaciones de escritura y lectura de archivos- Al crear o abrir un archivo, retorno diferentes clases de objetos

- Ofrece la funcionalidad necesario para interactuar con directorios- Crear y eliminar directorios- Consultar el estado del directorio.

Page 6: Open And Reading Files

Manejando archivos y directoriosstatic void Main(string[] args)

{ string ruta = @"E:\Jairo\Documents\sample.txt";

Console.WriteLine("El archivo existe?: {0}", File.Exists(ruta)); Console.WriteLine("Fecha de creación: {0}", File.GetCreationTime(ruta)); Console.WriteLine("Fecha última de consulta: {0}", File.GetLastAccessTime(ruta)); Console.WriteLine("Fecha última modificación: {0}", File.GetLastWriteTime(ruta));

ruta = @"E:\Jairo\Documents"; Console.WriteLine("El directorio existe?: {0}", Directory.Exists(ruta)); Console.WriteLine("Archivos de la carpeta Documents:\n");

string[] archivos = Directory.GetFiles(ruta); foreach(string name in archivos) Console.WriteLine("- {0}",name);

Console.WriteLine("\n\nDirectorios dentro de la carpeta Documents:\n"); string[] directorios = Directory.GetDirectories(ruta); foreach(string name in directorios) Console.WriteLine("- {0}", name); Console.ReadKey(); }

Page 7: Open And Reading Files

Manejando archivos y directorios

Page 8: Open And Reading Files

Abrir, Leer y Escribir en archivos

FileAccess- Read- Write- ReadWrite

FileMode- Append- Create- CreateNew- OpenOrCreate- Truncate

class Program { static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; FileStream archivo1 = File.OpenRead(ruta);

string cadenaTexto = "Hola latinoamerica!!!"; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); } }

Page 9: Open And Reading Files

Abrir, Leer y Escribir en archivos

FileAccess- Read- Write- ReadWrite

FileMode- Append- Create- CreateNew- OpenOrCreate- Truncate

class Program { static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; FileStream archivo1 = File.OpenWrite(ruta);

string cadenaTexto = "Hola latinoamerica!!!"; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); } }

Page 10: Open And Reading Files

Abrir, Leer y Escribir en archivos

FileAccess- Read- Write

- ReadWrite

FileMode- Append- Create- CreateNew-

OpenOrCreate- Truncate

static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = "Hola latinoamerica!!!"; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); }

Page 11: Open And Reading Files

Abrir, Leer y Escribir en archivos

FileAccess- Read- Write

- ReadWrite

FileMode- Append- Create- CreateNew-

OpenOrCreate- Truncate

static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = "Hola latinoamerica!!!"; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); }

Page 12: Open And Reading Files

La clase FileStream provee la funcionalidad básica para abrir archivos

de escritura o lectura.

static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = "Hola latinoamerica!!!"; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); }

Page 13: Open And Reading Files

La clase FileStream provee la funcionalidad básica para abrir archivos

de escritura o lectura.

Lectura de archivos de texto

Escritura de archivos de texto

StreamReader

StreamWriter

Page 14: Open And Reading Files

static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = "Hola latinoamerica!!!"; StreamWriter sw = new StreamWriter(archivo1); sw.Write(cadenaTexto); sw.Close(); archivo1.Close(); }

static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; FileStream archivo1; archivo1 = File.Open(ruta,FileMode.OpenOrCreate,FileAccess.Write); string cadenaTexto = "Hola latinoamerica!!!"; byte[] bytes = Encoding.ASCII.GetBytes(cadenaTexto); int no_bytes = bytes.Length; archivo1.Write(bytes, 0, no_bytes); }

Mejorando la lectura y escritura

Page 15: Open And Reading Files

Mas allá de los archivos físicos

Page 16: Open And Reading Files

Usando la memoria

Volátil

Eficiente

Page 17: Open And Reading Files

Usando la memoria

VENTAJAS Lectura eficiente Escritura eficiente Facilidad para persistir

CONSIDERACIONES En principio no hay persistencia Contiene un buffer interno para mayor eficiencia

MemoryStream

Page 18: Open And Reading Files

Método Descripción

ToWrite Escribe el contenido completo de esta secuencia de memoria en otra secuencia.

Flush Se sobrecarga para volverlo inválido

MemoryStream

Page 19: Open And Reading Files

Demo

Recuperando una imagen de una base de datos

Page 20: Open And Reading Files

Aumentando la eficiencia

Qué es un búfer

• ?

Ventajas Consideraciones

Page 21: Open And Reading Files

Aumentando la eficiencia

Qué es un búfer

•Check

Ventajas

• ?

Consideraciones

Page 22: Open And Reading Files

Aumentando la eficiencia

Qué es un búfer

•Check

Ventajas

•Check

Consideraciones

• ?

Page 23: Open And Reading Files

Aumentando la eficiencia

Qué es un búfer

•Check

Ventajas

•Check

Consideraciones

• Check

Page 24: Open And Reading Files

Aumentando la eficiencia

BufferedStream

using System;using System.Text;using System.IO;

class Program { static void Main(string[] args) { string ruta = @"E:\Jairo\Documents\sample.txt"; Stream fs = File.OpenRead(ruta);

BufferedStream bufer = new BufferedStream(fs); byte[] bytes = new byte[128];

bufer.Read(bytes, 0, 128); Console.WriteLine("Resultado de lectura: " + Encoding.ASCII.GetString(bytes)); Console.ReadLine(); } }

Page 25: Open And Reading Files

Preguntas?

Page 26: Open And Reading Files

Hoy viste:Leyendo y Escribiendo Archivos

MUCHAS GRACIASJonathan…Microsoft Student Partner – Colombia

Jairo Alberto Contreras BarragánMicrosoft Student Partner - Colombia