write ejemplos create and c# filestream streamwriter

c# - ejemplos - FileStream vs/diferencias StreamWriter?



streamwriter c# stack overflow (6)

Pregunta:

¿Qué es diferente entre FileStream y StreamWriter en dotnet?

¿Qué contexto se supone que debes usar? ¿Cuál es su ventaja y desventaja?

¿Es posible combinar estos dos en uno?


¿Qué es diferente entre FileStream y StreamWriter en dotnet?

Un FileStream es un Stream . Como todas las secuencias, solo trata con datos de byte[] .

Un StreamWriter : TextWriter , es un decorador de Stream. Un TextWriter codifica datos de texto como cadena o char a byte[] y luego lo escribe en la Stream vinculada.

¿Qué contexto se supone que debes usar? ¿Cuál es su ventaja y desventaja?

Utiliza un FileStream sin formato cuando tiene datos de byte[] . Agrega un StreamWriter cuando desea escribir texto. Use un formateador o un serializador para escribir datos más complejos.

¿Es posible combinar estos dos en uno?

Sí. Siempre necesita un Stream para crear un StreamWriter. El método de ayuda System.IO.File.CreateText("path") los creará en combinación y solo tendrá que deshacerse del escritor externo.


Bueno, desde MSDN para FileStream :

Expone un flujo alrededor de un archivo, admitiendo operaciones de lectura y escritura sincrónicas y asíncronas.

y el MSDN para StreamWriter :

Implementa un TextWriter para escribir caracteres en una secuencia en una codificación particular.

La diferencia más obvia es que FileStream permite operaciones de lectura / escritura, mientras que StreamWriter es solo de escritura.

La página de StreamWriter continúa para agregar:

StreamWriter está diseñado para la salida de caracteres en una codificación particular, mientras que las clases derivadas de Stream están diseñadas para entrada y salida de bytes.

Entonces, una segunda diferencia es que FileStream es para bytes, mientras que StreamWriter es para texto.


FileStream escribe bytes, StreamWriter escribe texto. Eso es todo.


Son dos niveles diferentes utilizados para generar información a fuentes de datos conocidas.

Un FileStream es un tipo de Stream, que conceptualmente es un mecanismo que apunta a alguna ubicación y puede manejar datos entrantes y / o salientes hacia y desde esa ubicación. Existen secuencias para leer / escribir en archivos, conexiones de red, memoria, tuberías, consola, detectores de depuración y rastreo, y algunos otros tipos de fuentes de datos. Específicamente, existe FileStream para realizar lecturas y escrituras en el sistema de archivos. La mayoría de las transmisiones tienen un uso bastante bajo y tratan los datos como bytes.

Un StreamWriter es un contenedor para un Stream que simplifica el uso de ese flujo para generar texto sin formato. Expone métodos que toman cadenas en lugar de bytes y realiza las conversiones necesarias hacia y desde matrices de bytes. Hay otros escritores; el otro principal que utilizaría es XmlTextWriter, que facilita la escritura de datos en formato XML. También hay contrapartes de Reader para los escritores que envuelven de manera similar un flujo y facilitan la recuperación de los datos.



Una diferencia clave (además de los comentarios anteriores) podría ser que FileStream admite la lectura y escritura de accesos de disco aleatorios a cualquier FileStream.Position especificada. Para modificaciones de archivos grandes, eso puede ser invaluable.