TOC

This article is currently in the process of being translated into Spanish (~99% done).

Data Streams:

Introduction

En el ambiente .NET, el concepto de Streams [Arroyos] es usado cuando quiere leer o escribir datos de o hacia una rango amplio de fuentes/denstinatarios, por ejemplo en-memoria, un archivo, sobre una conexión de red o básicamente cualquier otra situación donde quiera tranferir bytes de un lugar a otro.

Cuando trabaja con muchas clases relacionadas a lectura y escritura en el ambiente .NET, las verá teniendo métodos los cuales aceptan un parámetro del tipo Stream. Stream es la clase base para lidiar con cadenas y puede tomar muchas formas, por ejemplo, un MemoryStream o un FileStream, como veremos en los siguientes artículos. Sin embardo, la clase Stream es en si misma abstracta, lo cual significa que no puede instanciarla - solamente sirve como un clase base com´n para los diferentes tipos de arroyos de datos.

La mayoría de los tipos Stream pueden hacer tres cosas: Leer, Escribir y Colocarse (moverse a una nueva ubicación en el arroyo, para leer o escribir desde allí en vez de desde la posición actual). Por lo tanto la clase Stream implementa tres métodos para decidir si una clase derivada puede o no hacer algo: CanRead, CanWrite y CanSeek. Usted puede siempre consultar estas propiedades en el arroyo con el que está trabajando, para asegurarse que la operación deseada este disponible (por ejemplo para escritura).

Un Stream debe ser siempre liberado de lo que se este trabajando. De otro modeo, mantendrá bloqueado un recurso que no se debería estar bloqueao por más tiempo, por ejemplo cuando usamos un FileStream. La clase base Stream implementa la interfaz IDisposable, así que liberarlo es tan simple como llamar al método Dispose(), o quizás aún mejor, encapsulando el uso del arroyo de datos con un bloque using() (esa es la aproximación que usaremos en este tutorial).

Lectores y Escritores de Stream

Un uso común de los arroyos de datos es como fuente de respaldo de una de las clases Reader o Wrier, por ejemplo FileReader o BinaryWriter. Puede pasar sus Streams a una nueva instancia de estas clases para por ejemplo leer un archivo entero, manipularlo en memoria y luego escribirlo de regreso - hay muchas posibilidades. Demostraremos esto en los siguientes capítulos también.

Resumen

Un arroyo de datos es básicamente un mecanismo para mover bytes de un lugar a otro, por ejemplo en un archivo desde un recurso de la red. El ambiente .NET usa la clase abstracta Stream como la base para todo esto, ofreciedo varias implementaciones derivadas de ella, por ejemplo FileStream y MemoryStream, los cuales discutiremos en los siguientes artículos.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!