sql >> Base de Datos >  >> RDS >> Sqlserver

¿La secuencia de comandos C# que utiliza StreamWriter crea un carácter adicional?

Un StreamWriter es para escribir texto a un arroyo Siempre usa una codificación y, si no especifica una cuando la crea, usará UTF-8 (sin una marca de orden de bytes - BOM). El resultado que obtiene es el codificador UTF-8 que intenta traducir el texto (en forma de caracteres individuales) a UTF-8.

Si desea escribir bytes a una transmisión, simplemente escriba en la transmisión directamente usando Write método que acepta una matriz de bytes. Si desea escribir en un archivo, puede crear un FileStream y úsalo como flujo.

El nombre de las clases dentro del System.IO El espacio de nombres puede ser confuso a veces:

  • Stream es una clase base abstracta que proporciona métodos para leer y escribir bytes
  • FileStream es un Stream que lee y escribe en un archivo
  • BinaryWriter le permite escribir tipos primitivos en forma binaria en un Stream
  • TextWriter es una clase base abstracta que le permite escribir texto
  • StreamWriter es un TextWriter que le permite escribir texto en un Stream

Probablemente deberías usar FileStream o BinaryWriter encima de un FileStream para resolver su problema.