Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

12
Streams de datos y archivos

Transcript of Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Page 1: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Streams de datos y archivos

Page 2: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Introducción

Streams

Readers y Writers

E/S básica de archivos

Page 3: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Streams

Las clases Stream proporcionan un mecanismo para leer y escribir bytes desde y hacia un repositorio de seguridad

Las clases Stream heredan de System.IO.Stream

Las principales operaciones de streams incluyen Leer, Escribir y Buscar

Propiedades CanRead, CanWrite y CanSeek

Algunos streams soportan buffering para mejorar el rendimiento

El método Flush extrae y elimina buffers internos El método Close libera recursos

El método Close realiza un Flush implícito para streams buffered

Clases Stream proporcionadas por el .NET Framework

NetworkStream, BufferedStream, MemoryStream, FileStream

La instancia de Stream Null no tiene repositorio de seguridad

Page 4: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Readers y Writers

Las clases derivadas de System.IO.Stream utilizan entrada y salida de bytes

Los readers y writers aceptan otros tipos de entradas y salidas, y los leen y escriben en streams o cadenas

BinaryReader y BinaryWriter leen y escriben tipos primitivos a un stream

TextReader y TextWriter son clases abstractas que implementan los métodos de leer y escribir caracteres

Las clases derivadas StreamReader y StreamWriter leen y escriben a un stream

Las clases derivadas StringReader y StringWriter leen a una cadena y escriben a una clase StringBuilder respectivamente

Page 5: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

E/S básica de archivos

Clase FileStream

Clases File y FileInfo

Ejemplo de lectura de texto

Ejemplo de excritura de texto

Clases Directory y DirectoryInfo

FileSystemWatcher

Almacenamiento aislado

Page 6: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

La clase FileStream

La clase FileStream se utiliza para leer y escribir de/a archivos

Clases de parámetros del constructor FileStream

Enumeración FileMode, los valores incluyen Open, Append, Create

Enumeración FileAccess, los valores incluyen Read, ReadWrite, Write

Enumeración FileShare, los valores incluyen None, Read, ReadWrite, Write

Acceso aleatorio a archivos utilizando el método Seek

Especificado por un offset de bytes El offset es relativo al punto de referencia de búsqueda: Begin, Current,

End

Dim f As New FileStream(name, FileMode.Open, _FileAccess.Read, FileShare.Read)

Dim f As New FileStream(name, FileMode.Open, _FileAccess.Read, FileShare.Read)

Page 7: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Las clases File y FileInfo

La clase File tiene métodos compartidos para:

Crear, copiar, borrar, mover y abrir archivos La clase FileInfo tiene métodos de instancia para:

Crear, copiar, borrar, mover y abrir archivos Utilizando un objeto FileInfo se pueden eliminar algunas

comprobaciones de seguridad Ejemplo:

Asignar a aStream un archivo recién creado denominado MyFile.txt en el directorio actual

Dim aStream As FileStream _= File.Create(“MyFile.txt")

Dim aStream As FileStream _= File.Create(“MyFile.txt")

Page 8: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Ejemplo de lectura de texto

Lectura de texto de un archivo y escritura por consola

'...Dim sr As StreamReader = File.OpenText(FILE_NAME)Dim Line As String = sr.ReadLine()While Not(Line Is Nothing) Console.WriteLine(Line) Line = sr.ReadLine()End WhileConsole.WriteLine ( _ "The end of the stream has been reached.")sr.Close()'...

'...Dim sr As StreamReader = File.OpenText(FILE_NAME)Dim Line As String = sr.ReadLine()While Not(Line Is Nothing) Console.WriteLine(Line) Line = sr.ReadLine()End WhileConsole.WriteLine ( _ "The end of the stream has been reached.")sr.Close()'...

Page 9: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Ejemplo de escritura de texto

Crear un archivo

Escribir una cadena, un entero y un número en coma flotante

Cerrar el archivo

'...Dim sw As StreamWriter = _

File.CreateText("MyFile.txt")sw.WriteLine("This is my file")sw.WriteLine( _ "I can write ints {0} or floats {1}", 1, 4.2)sw.Close()'...

'...Dim sw As StreamWriter = _

File.CreateText("MyFile.txt")sw.WriteLine("This is my file")sw.WriteLine( _ "I can write ints {0} or floats {1}", 1, 4.2)sw.Close()'...

Page 10: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Las clases Directory y DirectoryInfo

Directory tiene métodos compartidos para:

Crear, mover y enumerar a través de directorios y subdirectorios DirectoryInfo tiene métodos de instancia para:

Crear, navegar y enumerar a través de directorios y subdirectorios Poder eliminar algunas comprobaciones de seguridad cuando se

reutiliza un objeto Ejemplo:

Enumerar a través del directorio actual

Utilizar objetos de la clase Path para procesar cadenas de directorios

Dim dir As New DirectoryInfo(".")Dim f As FileInfo, name As StringFor Each f in dir.GetFiles("*.vb") name = f.FullNameNext

Dim dir As New DirectoryInfo(".")Dim f As FileInfo, name As StringFor Each f in dir.GetFiles("*.vb") name = f.FullNameNext

Page 11: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

FileSystemWatcher

FileSystemWatcher se utiliza para monitorizar un sistema de archivos

Crear un objeto FileSystemWatcher

Configurar para invocar un método de rellamada al detectar cambios

Empezar a monitorizar cambios en el sistema de archivos

Capturar eventos en el método de rellamada

Dim watcher As New FileSystemWatcher() Dim watcher As New FileSystemWatcher()

watcher.Path = args(0)watcher.Filter = "*.txt"watcher.NotifyFilter = NotifyFilters.FileName AddHandler watcher.Renamed, AddressOf OnRenamed

watcher.Path = args(0)watcher.Filter = "*.txt"watcher.NotifyFilter = NotifyFilters.FileName AddHandler watcher.Renamed, AddressOf OnRenamed

watcher.EnableRaisingEvents = True watcher.EnableRaisingEvents = True

Shared Sub OnRenamed(ByVal s As object, ByVal e As RenamedEventArgs) Console.WriteLine("File: {0} renamed to {1}", _ e.OldFullPath, e.FullPath)End Sub

Shared Sub OnRenamed(ByVal s As object, ByVal e As RenamedEventArgs) Console.WriteLine("File: {0} renamed to {1}", _ e.OldFullPath, e.FullPath)End Sub

Page 12: Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos.

Almacenamiento aislado

El almacenamiento aislado ofrece formas estandarizadas de asociar aplicaciones a datos almacenados

Las aplicaciones Web con confianza parcial requieren:

Aislamiento de sus datos de los datos de otras aplicaciones

Acceso seguro al sistema de archivos de un equipo

El espacio de nombres System.IO.IsolatedStorage contiene las siguientes clases:

NotInheritable Public Class IsolatedStorageFile Inherits IsolatedStorage Implements IDisposable

NotInheritable Public Class IsolatedStorageFile Inherits IsolatedStorage Implements IDisposable

Public Class IsolatedStorageFileStream Inherits FileStream

Public Class IsolatedStorageFileStream Inherits FileStream