Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Lo script C# che utilizza StreamWriter crea un carattere aggiuntivo?

Un StreamWriter serve per scrivere testo a un ruscello. Utilizza sempre una codifica e se non ne specifichi una quando la crei utilizzerà UTF-8 (senza un byte order mark - BOM). L'output che ottieni è il codificatore UTF-8 che cerca di tradurre il testo (sotto forma di singoli caratteri) in UTF-8.

Se vuoi scrivere byte in uno stream, scrivi semplicemente nello stream direttamente usando Write metodo che accetta un array di byte. Se vuoi scrivere su un file puoi creare un FileStream e usalo come stream.

La denominazione delle classi all'interno di System.IO lo spazio dei nomi può creare confusione a volte:

  • Stream è una classe base astratta che fornisce metodi per leggere e scrivere byte
  • FileStream è un Stream che legge e scrive su un file
  • BinaryWriter ti permette di scrivere tipi primitivi in ​​forma binaria in un Stream
  • TextWriter è una classe base astratta che ti permette di scrivere del testo
  • StreamWriter è un TextWriter che ti permette di scrivere del testo su un Stream

Probabilmente dovresti usare FileStream o BinaryWriter sopra un FileStream per risolvere il tuo problema.