ich BinaryFormatter mich entschieden, um zu sehen, wie es für mich arbeiten und ich habe eine einfache Frage:BinaryFormatter mit Memory Frage
Wenn es mit der Zeichenfolge mit HALLO, und ich wandle die Memorystream in ein Array, es gibt mir 29 Dimensionen, mit fünf von ihnen die eigentlichen Daten gegen Ende der Dimensionen sein:
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
byte[] bytes;
string originalData = "HELLO";
bf.Serialize(ms, originalData);
ms.Seek(0, 0);
bytes = ms.ToArray();
kehrt
- bytes {Dimensions:[29]} byte[]
[0] 0 byte
[1] 1 byte
[2] 0 byte
[3] 0 byte
[4] 0 byte
[5] 255 byte
[6] 255 byte
[7] 255 byte
[8] 255 byte
[9] 1 byte
[10] 0 byte
[11] 0 byte
[12] 0 byte
[13] 0 byte
[14] 0 byte
[15] 0 byte
[16] 0 byte
[17] 6 byte
[18] 1 byte
[19] 0 byte
[20] 0 byte
[21] 0 byte
[22] 5 byte
[23] 72 byte
[24] 69 byte
[25] 76 byte
[26] 76 byte
[27] 79 byte
[28] 11 byte
gibt es eine Möglichkeit, nur die d zurückkehren ata codiert als Bytes ohne alle überflüssigen Informationen?
Hinweis: der 'StreamWriter' Konstruktor erstellt intern eine Instanz von' UTF8Encoding' die eigentliche Umwandlung in Bytes zu tun, wenn alles, was Sie ein Array von Bytes in einen String entsprechenden benötigen, dann 'MemoryStream' und. 'TextWriter' sind nicht wirklich die Lösung - sie stellen nur eine zufällige Möglichkeit dar, implizit die Klasse zu erstellen, die die Lösung bereitstellt.Verwenden Sie einfach' Encoding.UTF8.GetBytes' direkt - oder Verwenden Sie die richtige Codierungsklasse für die von Ihnen benötigte Zeichencodierung (UTF-8 ist eine gute Standardauswahl). –