你好,根据你的问题,我可以为您提供如下答案:
在 Golang 中读取固定字节可以使用 io.ReadFull
函数来实现。
io.ReadFull
函数的原型如下:
func ReadFull(r Reader, buf []byte) (n int, err error)
其中,r
是要读取的数据源,buf
是用于存储读取数据的缓冲区。函数会一直阻塞等待直到填满缓冲区或者发生错误。如果返回的错误是 io.EOF
,则表示已经达到了文件末尾。
以下是一个示例代码:
package main
import (
"fmt"
"io"
"os"
)
func main() {
file, err := os.Open("test.txt")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
buf := make([]byte, 10) // 定义一个长度为10的缓冲区
n, err := io.ReadFull(file, buf)
if err != nil && err != io.EOF { // 如果不是EOF,则表示出现了错误
fmt.Println(err)
return
}
fmt.Printf("%d bytes read: %s", n, string(buf))
}
以上代码会从文件中读取前 10 个字节,并将其输出到控制台上。如果文件中不足 10 个字节,则会返回一个错误。