Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

C#-Skript mit StreamWriter erstellt zusätzliches Zeichen?

Ein StreamWriter dient zum Schreiben von Text zu einem Bach. Es verwendet immer eine Codierung, und wenn Sie beim Erstellen keine angeben, wird UTF-8 verwendet (ohne Byte-Order-Markierung - BOM). Die Ausgabe, die Sie erhalten, ist der UTF-8-Encoder, der versucht, den Text (in Form einzelner Zeichen) in UTF-8 zu übersetzen.

Wenn Sie Bytes schreiben möchten in einen Stream schreiben Sie einfach mit Write direkt in den Stream Methode, die ein Array von Bytes akzeptiert. Wenn Sie in eine Datei schreiben möchten, können Sie einen FileStream erstellen und verwende das als Stream.

Die Benennung von Klassen innerhalb der System.IO Namespace kann manchmal verwirrend sein:

  • Stream ist eine abstrakte Basisklasse, die Methoden zum Lesen und Schreiben von Bytes bereitstellt
  • FileStream ist ein Stream die eine Datei liest und schreibt
  • BinaryWriter ermöglicht es Ihnen, primitive Typen in binärer Form in einen Stream zu schreiben
  • TextWriter ist eine abstrakte Basisklasse, mit der Sie Text schreiben können
  • StreamWriter ist ein TextWriter mit dem Sie Text in einen Stream schreiben können

Sie sollten wahrscheinlich FileStream verwenden oder BinaryWriter auf einem FileStream um Ihr Problem zu lösen.