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
é umStream
que lê e grava em um arquivoBinaryWriter
permite que você escreva tipos primitivos em formato binário em umStream
TextWriter
é uma classe base abstrata que permite escrever textoStreamWriter
é umTextWriter
que permite escrever texto em umStream
Você provavelmente deveria usar
FileStream
ou BinaryWriter
em cima de um FileStream
para resolver seu problema.