Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Le script C# utilisant StreamWriter crée-t-il un caractère supplémentaire ?

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 octets
  • FileStream est un Stream qui lit et écrit dans un fichier
  • BinaryWriter vous permet d'écrire des types primitifs sous forme binaire dans un Stream
  • TextWriter est une classe de base abstraite qui vous permet d'écrire du texte
  • StreamWriter est un TextWriter qui vous permet d'écrire du texte dans un Stream

Vous devriez probablement utiliser FileStream ou BinaryWriter au-dessus d'un FileStream pour résoudre votre problème.