Open And Reading Files

Preview:

Citation preview

Leyendo y Escribiendo Archivos

Jonathan Aldave MendozaPerú

Jairo Alberto Contreras BarragánMicrosoft Student Partner - Colombia

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

Antes de comenzar

Stream

FileStream MemoryStream BufferedStream …

QUE ES UN STREAM?

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

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

Antes de comenzar

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.

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(); }

Manejando archivos y directorios

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); } }

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); } }

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); }

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); }

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); }

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

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

Mas allá de los archivos físicos

Usando la memoria

Volátil

Eficiente

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

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

Demo

Recuperando una imagen de una base de datos

Aumentando la eficiencia

Qué es un búfer

• ?

Ventajas Consideraciones

Aumentando la eficiencia

Qué es un búfer

•Check

Ventajas

• ?

Consideraciones

Aumentando la eficiencia

Qué es un búfer

•Check

Ventajas

•Check

Consideraciones

• ?

Aumentando la eficiencia

Qué es un búfer

•Check

Ventajas

•Check

Consideraciones

• Check

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(); } }

Preguntas?

Hoy viste:Leyendo y Escribiendo Archivos

MUCHAS GRACIASJonathan…Microsoft Student Partner – Colombia

Jairo Alberto Contreras BarragánMicrosoft Student Partner - Colombia

Recommended