Saltar al contenido

Diferencia entre Buffer y Stream en C#

Hola usuario de nuestra página web, descubrimos la solución a tu búsqueda, has scroll y la hallarás aquí.

Solución:

Como dije en mi comentario, la diferencia básica entre un búfer y un flujo es que un flujo es una secuencia que transfiere información desde o hacia una fuente específica, mientras que un búfer es una secuencia de bytes que se almacena en la memoria. Por ejemplo:

FileStream stream = new FileStream("filepath.txt", FileMode.OpenOrCreate);

Abre una secuencia en un archivo. Ese flujo se puede leer, escribir o ambos. Como no requiere memoria adicional, es liviano y rápido, pero hacer referencia arbitrariamente a un conjunto particular de datos en la fuente puede ser engorroso. Los flujos también se benefician de ser una conexión en lugar de un conjunto discreto de datos, por lo que no necesita saber el tamaño de los datos de antemano.

En cambio:

byte[] fileContents = File.ReadAllBytes("filepath.txt");

Lee todos los bytes de un archivo en la memoria. Esto es útil cuando necesita manipular todo el archivo a la vez, o mantener una “copia local” para que su programa la conserve, de modo que el archivo pueda estar libre para otros usos. Sin embargo, según el tamaño de la fuente y la cantidad de memoria disponible, un búfer que contiene el completo El archivo podría no ser una opción.

Sin embargo, esta es solo una explicación básica. Hay otros más completos, por ejemplo, como dice Marc Gravell:

Muchas estructuras de datos (listas, colecciones, etc.) actúan como contenedores: contienen un conjunto de objetos. Pero no un arroyo; si una lista es un balde, entonces una corriente es una manguera. Puede extraer datos de un flujo o insertar datos en un flujo, pero normalmente solo una vez y solo en una dirección (hay excepciones, por supuesto). Por ejemplo, los datos TCP a través de una red son un flujo; puede enviar (o recibir) fragmentos de datos, pero solo en conexión con la otra computadora y, por lo general, solo una vez: no puede rebobinar Internet.

Los flujos también pueden manipular los datos que pasan a través de ellos; flujos de compresión, flujos de cifrado, etc. Pero nuevamente, la metáfora subyacente aquí es una manguera de datos. Por lo general, también se accede a un archivo (en algún nivel) como una secuencia; puede acceder a bloques de datos secuenciales. Por supuesto, la mayoría de los sistemas de archivos también brindan acceso aleatorio, por lo que las secuencias ofrecen cosas como Buscar, Posición, Longitud, etc., pero no todas las implementaciones lo admiten. No tiene sentido buscar algunos flujos u obtener la longitud de un zócalo abierto.

Valoraciones y reseñas

Si haces scroll puedes encontrar las interpretaciones de otros creadores, tú además puedes mostrar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *