在 Golang 中,ReadAt() 是 io.ReaderAt 接口的方法之一。它允许我们从一个特定偏移量开始读取数据,而不是从文件开头或当前位置开始。
该函数的语法如下:
func (f *File) ReadAt(b []byte, off int64) (n int, err error)
其中 f 表示要读取的文件,b 表示要读取的数据缓冲区,off 表示要读取的偏移量。
该函数返回两个值:已读字节数和错误信息。如果没有错误,则 err 为 nil。
以下是一个简单的例子:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Open("file.txt")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
offset := int64(5) // 偏移量为 5
data := make([]byte, 10)
bytesRead, err := file.ReadAt(data, offset)
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("%d bytes read: %s\n", bytesRead, data[:bytesRead])
}
以上代码将会打开名为 "file.txt" 的文件,并从第五个字节开始读取十个字节到缓冲区中。如果一切顺利,将输出读取到的数据和字节数。




