StreamWriter
е за писане на текстната към поток. Винаги използва кодиране и ако не посочите такова, когато го създавате, ще използва UTF-8 (без знак за ред на байтовете - BOM). Резултатът, който получавате, е UTF-8 енкодерът, който се опитва да преведе текста (под формата на отделни знаци) в UTF-8.
Ако искате да пишете байтове към поток просто пишете в потока директно с помощта на Write
метод, който приема масив от байтове. Ако искате да пишете във файл, можете да създадете FileStream
и го използвайте като поток.
Именуването на класове в рамките на System.IO
пространството от имена понякога може да бъде объркващо:
Stream
е абстрактен базов клас, предоставящ методи за четене и запис на байтовеFileStream
еStream
който чете и записва във файлBinaryWriter
ви позволява да пишете примитивни типове в двоична форма вStream
TextWriter
е абстрактен базов клас, който ви позволява да пишете текстStreamWriter
еTextWriter
който ви позволява да пишете текст вStream
Вероятно трябва да използвате FileStream
или BinaryWriter
върху FileStream
за да разрешите проблема си.