StreamWriter służy do pisania tekstu do strumienia. Zawsze używa kodowania i jeśli nie określisz go podczas tworzenia, użyje UTF-8 (bez oznaczenia kolejności bajtów - BOM). Dane wyjściowe, które otrzymujesz, to koder UTF-8, który próbuje przetłumaczyć tekst (w postaci pojedynczych znaków) na UTF-8.
Jeśli chcesz pisać bajty do strumienia po prostu napisz do strumienia bezpośrednio za pomocą Write metoda, która akceptuje tablicę bajtów. Jeśli chcesz pisać do pliku, możesz utworzyć FileStream i użyj go jako strumienia.
Nazewnictwo klas w System.IO przestrzeń nazw może być czasami myląca:
Streamjest abstrakcyjną klasą bazową dostarczającą metody do odczytu i zapisu bajtówFileStreamtoStreamktóry czyta i zapisuje do plikuBinaryWriterpozwala na pisanie typów pierwotnych w formie binarnej doStreamTextWriterjest abstrakcyjną klasą bazową, która pozwala pisać tekstStreamWriterjestTextWriterktóry pozwala pisać tekst doStream
Prawdopodobnie powinieneś użyć FileStream lub BinaryWriter na górze FileStream aby rozwiązać Twój problem.