Un StreamWriter
sert à écrire du texte à un ruisseau. Il utilise toujours un encodage et si vous n'en spécifiez pas lors de sa création, il utilisera UTF-8 (sans marque d'ordre d'octet - BOM). La sortie que vous obtenez est l'encodeur UTF-8 essayant de traduire le texte (sous la forme de caractères individuels) en UTF-8.
Si vous voulez écrire des octets à un flux écrivez simplement dans le flux directement en utilisant le Write
méthode qui accepte un tableau d'octets. Si vous voulez écrire dans un fichier, vous pouvez créer un FileStream
et utilisez-le comme flux.
Le nommage des classes dans le System.IO
l'espace de noms peut parfois prêter à confusion :
Stream
est une classe de base abstraite fournissant des méthodes pour lire et écrire des octetsFileStream
est unStream
qui lit et écrit dans un fichierBinaryWriter
vous permet d'écrire des types primitifs sous forme binaire dans unStream
TextWriter
est une classe de base abstraite qui vous permet d'écrire du texteStreamWriter
est unTextWriter
qui vous permet d'écrire du texte dans unStream
Vous devriez probablement utiliser FileStream
ou BinaryWriter
au-dessus d'un FileStream
pour résoudre votre problème.