Un StreamWriter es para escribir texto a un arroyo Siempre usa una codificación y, si no especifica una cuando la crea, usará UTF-8 (sin una marca de orden de bytes - BOM). El resultado que obtiene es el codificador UTF-8 que intenta traducir el texto (en forma de caracteres individuales) a UTF-8.
Si desea escribir bytes a una transmisión, simplemente escriba en la transmisión directamente usando Write método que acepta una matriz de bytes. Si desea escribir en un archivo, puede crear un FileStream y úsalo como flujo.
El nombre de las clases dentro del System.IO El espacio de nombres puede ser confuso a veces:
Streames una clase base abstracta que proporciona métodos para leer y escribir bytesFileStreames unStreamque lee y escribe en un archivoBinaryWriterle permite escribir tipos primitivos en forma binaria en unStreamTextWriteres una clase base abstracta que le permite escribir textoStreamWriteres unTextWriterque le permite escribir texto en unStream
Probablemente deberías usar FileStream o BinaryWriter encima de un FileStream para resolver su problema.