2016-06-08 36 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

相关问题