2016-06-08 41 views
-4

我正在使用bufio將字節數組附加到文件中。當我使用cat時,我得到:將文件中的字節讀入內存

[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] 

所以字節數組。現在我想讀取文件到內存中,所以我用:

content, err := ioutil.ReadFile(filename) 

但是,當我顯示content可變我得到比文件(一個數組,而不是很多)的內容完全不同的輸出。怎麼了?

+3

拉不,我們不會是你的代碼的一小部分工作示例能夠幫助你很多。 – nemo

+2

'iotuil.ReadFile'只是從文件中讀取字節,它不知道如何將它們解釋爲除[[] byte]以外的數據結構 – JimB

回答

0

你寫錯了文件。它的可讀格式應該是二進制的。

我猜你使用了類似fmt.Fprintln(file, byte_slice)或變體。

它必須是fmt.Fprintf(file, "%s", byte_slice)或類似的。

請向我們展示代碼如何寫入文件。

0

因此,發生什麼想法是該文件內的內容是一個字符串。當你將它從文件中取出時,它會將該字符串轉換爲字節。你需要做的就是這些字節轉換爲字符串你追加到該文件之前,然後將它們轉換回來時,你從文件

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

相關問題