Download - Streams de datos y archivos. Introducción Streams Readers y Writers E/S básica de archivos
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
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
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
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)
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")
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()'...
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()'...
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
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
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