在Golang中终止二进制字节数组的指示符?

时间:2015-12-06 03:27:27

标签: go binary bytearray

在Golang中,如果我有二进制数据的字节数组,如果它在一个更大的数组中,如何确定实际数据的终止。例如,如果我执行以下操作,则在纯文本时读取文件:

n := bytes.IndexByte(chunk, 0)

然后,我可以通过执行以下操作来确定数据的实际大小:

Authenticator

当它是纯文本时,n会给我结束实际数据 - 如果数据是二进制的,我该怎么做?

1 个答案:

答案 0 :(得分:3)

io.Reader's读取函数返回读取的字节数。

然后,您可以创建该大小的子切片。 例如:

data := make([]byte,1024)
n, err := reader.Read(arr)
if err != nil {
    // do something with error
} else {
    rightSized := data[:n] 
    // rightSized is []byte of N length now and shares the underlying 
    // backing array so it's both space and time efficient
    // this will contain whatever was read from the reader
}