sql >> Database >  >> RDS >> Sqlserver

C#-script met StreamWriter creëert extra karakter?

Een StreamWriter is voor het schrijven van tekst naar een stroom. Het gebruikt altijd een codering en als u er geen opgeeft wanneer u het maakt, gebruikt het UTF-8 (zonder een bytevolgordemarkering - stuklijst). De uitvoer die u krijgt, is de UTF-8-encoder die probeert de tekst (in de vorm van afzonderlijke tekens) naar UTF-8 te vertalen.

Als u bytes . wilt schrijven naar een stream schrijft u gewoon rechtstreeks naar de stream met behulp van de Write methode die een array van bytes accepteert. Als u naar een bestand wilt schrijven, kunt u een FileStream . maken en gebruik dat als de stream.

De naamgeving van klassen binnen de System.IO naamruimte kan soms verwarrend zijn:

  • Stream is een abstracte basisklasse die methoden biedt om bytes te lezen en te schrijven
  • FileStream is een Stream dat leest en schrijft naar een bestand
  • BinaryWriter stelt u in staat primitieve typen in binaire vorm naar een Stream te schrijven
  • TextWriter is een abstracte basisklasse waarmee je tekst kunt schrijven
  • StreamWriter is een TextWriter waarmee u tekst kunt schrijven naar een Stream

U moet waarschijnlijk FileStream . gebruiken of BinaryWriter bovenop een FileStream om uw probleem op te lossen.



  1. Hoe een specifiek element uit een JSON-array te selecteren in Oracles JSON CLOB-type

  2. Single is gelijk aan in MYSQL

  3. Fout bij het parseren van gegevens org.json.JSONException:einde van invoer bij teken 0 van - Android

  4. Python+MySQL - Bulk invoegen