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:
Stream
jest abstrakcyjną klasą bazową dostarczającą metody do odczytu i zapisu bajtówFileStream
toStream
który czyta i zapisuje do plikuBinaryWriter
pozwala na pisanie typów pierwotnych w formie binarnej doStream
TextWriter
jest abstrakcyjną klasą bazową, która pozwala pisać tekstStreamWriter
jestTextWriter
który pozwala pisać tekst doStream
Prawdopodobnie powinieneś użyć FileStream
lub BinaryWriter
na górze FileStream
aby rozwiązać Twój problem.