Stream
Esta clase nos brinda una serie de métodos para trabajar con datos secuenciales, además, se especializa según los datos con los cuales vamos a trabajar en:
FileStream
MemoryStream
CriptoStream
NetworkStream
GZipStream
Empecemos con el primero, el FileStream. Como su nombre lo indica permite hacer operaciones sobre los datos contenidos en los archivos. Lo primero que necesitamos conocer es como obtener el FileStream de un archivo, esto lo hacemos mediante la clase File:
Dim Miarchivo As FileStream = File.Open("c:\prueba.log", FileMode.Open, FileAccess.Read) |
Sin embargo, para facilitar la lectura del archivo podemos utilizar el StreamReader ya que el FileStream lee el archivo como un arreglo de bytes, el StreamReader permite leer el archivo como un simple string. Veamos cómo podemos hacer esto:
Sub Main() Dim Miarchivo As FileStream = File.Open("c:\prueba.log", FileMode.Open, FileAccess.Read) Dim Mistreamreader As New StreamReader(Miarchivo) Console.WriteLine(Mistreamreader.ReadToEnd()) Console.ReadKey() End Sub |
Mediante el OpenText de la clase File podemos simplificar el código anterior:
Sub Main() Dim Mistreamreader As StreamReader = File.OpenText("c:\prueba.log") Console.WriteLine(Mistreamreader.ReadToEnd()) Console.ReadKey() End Sub |
De igual forma podemos crear un nuevo archivo:
Sub Main() Dim Mistreamwriter As StreamWriter = File.CreateText("c:\temp\prueba.log") Mistreamwriter.WriteLine("Primera linea") Mistreamwriter.WriteLine("Segunda linea") Mistreamwriter.Close() End Sub |
Es importante tomar en cuenta que el fragmento de código anterior sobre escribe el archivo.
En algunas ocasiones es necesario crear el stream en memoria de manera temporal, antes de almacenarlo, por ejemplo, en un archivo. Para estos casos se puede utilizar el memorystream, su uso es muy similar al filestream. Veamos un ejemplo:
Sub Main() Dim Mitemp As New MemoryStream() Dim Mistream As StreamWriter = New StreamWriter(Mitemp) Mistream.WriteLine("Primera Linea") Mistream.WriteLine("Segunda Linea") Mistream.WriteLine("Tercera Linea") Mistream.Flush() Dim Miarchivo As FileStream = File.Create("c:\temp\prueba.txt") Mitemp.WriteTo(Miarchivo) Mitemp.Close() Mistream.Close() Miarchivo.Close() End Sub |
Cuando necesitamos manejar stream que requieran gran velocidad contamos con el streambuffered, su uso es muy similar a los anteriores por lo cual solo lo voy a citar, en futuros artículos voy a comentar sobre los otros tipos de blogs.
No hay comentarios.:
Publicar un comentario