En StreamWriter är för att skriva text till en bäck. Den använder alltid en kodning och om du inte anger en när du skapar den kommer den att använda UTF-8 (utan ett byteordermärke - BOM). Utdatan du får är UTF-8-kodaren som försöker översätta texten (i form av enskilda tecken) till UTF-8.
Om du vill skriva bytes till en ström skriv helt enkelt till strömmen direkt med Write metod som accepterar en array av byte. Om du vill skriva till en fil kan du skapa en FileStream och använd det som stream.
Namnet på klasser inom System.IO namnrymden kan ibland vara förvirrande:
Streamär en abstrakt basklass som tillhandahåller metoder för att läsa och skriva bytesFileStreamär enStreamsom läser och skriver till en filBinaryWriterlåter dig skriva primitiva typer i binär form till enStreamTextWriterär en abstrakt basklass som låter dig skriva textStreamWriterär enTextWritersom låter dig skriva text till enStream
Du borde förmodligen använda FileStream eller BinaryWriter ovanpå en FileStream för att lösa ditt problem.