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 enStream
som läser och skriver till en filBinaryWriter
låter dig skriva primitiva typer i binär form till enStream
TextWriter
är en abstrakt basklass som låter dig skriva textStreamWriter
är enTextWriter
som 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.