데이터를 읽다보면 현재 오프셋(offset) 위치를 확인해야 할 때가 있기 마련이다. 하지만 Go 언어는 다양한 인터페이스를 통해 값을 읽어오기 때문에 내부에 있는 오프셋을 확인하기 어렵다. 이때는 io.Seeker 인터페이스에 구현된 Seek 함수를 통해 현재 오프셋을 확인가능하다.
import (
"fmt"
"os"
)
func main() {
f, err := os.Open("SampleFile....")
if err != nil {
panic(err)
}
d := make([]byte, 16)
_, err = f.Read(d)
if err != nil {
panic(err)
}
offset, err := f.Seek(0, 1)
if err != nil {
panic(err)
}
fmt.Println(offset) // output: 16
}