Um
StreamWriter é para escrever texto a um córrego. Ele sempre usa uma codificação e, se você não especificar uma ao criá-la, usará UTF-8 (sem uma marca de ordem de byte - BOM). A saída que você obtém é o codificador UTF-8 tentando traduzir o texto (na forma de caracteres individuais) em UTF-8. Se você deseja escrever bytes para um stream simplesmente escreva no stream diretamente usando o
Write método que aceita uma matriz de bytes. Se você deseja gravar em um arquivo, pode criar um FileStream e use isso como o fluxo. A nomenclatura de classes dentro do
System.IO namespace pode ser confuso às vezes:Streamé uma classe base abstrata que fornece métodos para ler e escrever bytesFileStreamé umStreamque lê e grava em um arquivoBinaryWriterpermite que você escreva tipos primitivos em formato binário em umStreamTextWriteré uma classe base abstrata que permite escrever textoStreamWriteré umTextWriterque permite escrever texto em umStream
Você provavelmente deveria usar
FileStream ou BinaryWriter em cima de um FileStream para resolver seu problema.