2016-06-08 20 views
-4

Ich verwende bufio, um Byte-Arrays an eine Datei anzufügen. Als ich cat darauf verwende ich bekommen:Lesen von Bytes aus der Datei in den Speicher

[176 0 0 0 4 0 0 0 1 0 0 0 57 12 127 47 4 0 0 0 1 0 0 0 215 136 47 0 64 0 0 0 2 0 0 0 57 0 97 0 53 0 52 0 100 0 98 0 99 0 52 0 98 0 100 0 100 0 49 0 54 0 99 0 49 0 97 0 49 0 57 0 56 0 48 0 52 0 55 0 53 0 49 0 100 0 49 0 49 0 51 0 99 0 52 0 52 0 98 0 24 0 0 0 2 0 0 0 83 0 111 0 109 0 101 0 32 0 99 0 108 0 105 0 101 0 110 0 116 0 0 0 36 0 0 0 2 0 0 0 83 0 111 0 109 0 101 0 32 0 111 0 116 0 104 0 101 0 114 0 32 0 112 0 97 0 114 0 116 0 110 0 101 0 114 0][176 0 0 0 4 0 0 0 1 0 0 0 4 162 127 47 4 0 0 0 1 0 0 0 215 136 47 0 64 0 0 0 2 0 0 0 57 0 97 0 53 0 52 0 100 0 98 0 99 0 52 0 98 0 100 0 100 0 49 0 54 0 99 0 49 0 97 0 49 0 57 0 56 0 48 0 52 0 55 0 53 0 49 0 100 0 49 0 49 0 51 0 99 0 52 0 52 0 98 0 24 0 0 0 2 0 0 0 83 0 111 0 109 0 101 0 32 0 99 0 108 0 105 0 101 0 110 0 116 0 0 0 36 0 0 0 2 0 0 0 83 0 111 0 109 0 101 0 32 0 111 0 116 0 104 0 101 0 114 0 32 0 112 0 97 0 114 0 116 0 110 0 101 0 114 0][176 0 0 0 4 0 0 0 1 0 0 0 35 200 127 47 4 0 0 0 1 0 0 0 215 136 47 0 64 0 0 0 2 0 0 0 57 0 97 0 53 0 52 0 100 0 98 0 99 0 52 0 98 0 100 0 100 0 49 0 54 0 99 0 49 0 97 0 49 0 57 0 56 0 48 0 52 0 55 0 53 0 49 0 100 0 49 0 49 0 51 0 99 0 52 0 52 0 98 0 24 0 0 0 2 0 0 0 83 0 111 0 109 0 101 0 32 0 99 0 108 0 105 0 101 0 110 0 116 0 0 0 36 0 0 0 2 0 0 0 83 0 111 0 109 0 101 0 32 0 111 0 116 0 104 0 101 0 114 0 32 0 112 0 97 0 114 0 116 0 110 0 101 0 114 0] 

So Arrays von Bytes. Jetzt möchte ich die Datei in den Speicher lesen, so ich benutze:

content, err := ioutil.ReadFile(filename) 

Aber wenn ich die content Variable anzeigen bekomme ich einen ganz anderen Ausgang als der Inhalt der Datei (und ein Array anstelle von vielen). Was ist los mit dir?

+3

Ohne ein minimales Arbeitsbeispiel des Codes ziehen kann Ihnen viel helfen. – nemo

+2

'iotuil.ReadFile' liest nur die Bytes aus der Datei, es weiß nicht, wie man diese als eine andere Datenstruktur als' [] byte' interpretiert – JimB

Antwort

0

Sie schrieben es falsch in die Datei. Sein vom Menschen lesbares Format sollte binär sein.

Meine Vermutung, Sie verwendeten so etwas wie fmt.Fprintln(file, byte_slice) oder Varianten.

Es muss fmt.Fprintf(file, "%s", byte_slice) oder ähnlich sein.

Bitte zeigen Sie uns Code, wie Sie in die Datei schreiben.

0

Also was passiert ist, dass der Inhalt innerhalb dieser Datei eine Zeichenfolge ist. Wenn Sie es aus der Datei ziehen, konvertiert es diese Zeichenfolge in Bytes. Was Sie tun müssen, ist diese Bytes in eine Zeichenfolge zu konvertieren, bevor Sie in die Datei anhängen und dann zurück zu konvertieren, wenn Sie aus der Datei werden wir nicht sein

https://play.golang.org/p/PyBXAU9rVW

Verwandte Themen