你可以使用Golang标准库中的os.File
和io.ReadSeeker
接口来读取文件并支持seek操作。
以下是一个简单的示例代码:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Open("test.txt")
if err != nil {
panic(err)
}
defer file.Close()
// 定位到第5个字节
pos, err := file.Seek(4, 0)
if err != nil {
panic(err)
}
fmt.Println("当前位置:", pos)
data := make([]byte, 5)
n, err := file.Read(data)
if err != nil {
panic(err)
}
fmt.Printf("%d bytes 读取到的数据:%s\n", n, data[:n])
}
在上面的代码中,我们首先打开了一个名为“test.txt”的文件,然后使用file.Seek()
方法将光标定位到第5个字节。随后,我们使用file.Read()
方法从文件中读取了5个字节,并将它们输出到控制台上。
需要注意的是,在使用seek操作时,要确保偏移量不超过文件大小。另外,对于一些不支持seek操作的输入流(比如网络连接),无法进行类似于指针式寻址的操作。