Golang bytes.Reader.Seek() function example
package bytes
Seek sets the offset for the next Read or Write to offset, interpreted according to whence: 0 means relative to the origin of the file, 1 means relative to the current offset, and 2 means relative to the end. Seek returns the new offset and an error, if any.
Seeking to a negative offset is an error. Seeking to any positive offset is legal, but the behavior of subsequent I/O operations on the underlying object is implementation-dependent.
Golang bytes.Reader.Seek() function usage example
package main
import (
"bytes"
"fmt"
)
var str = []byte("abcdef")
func seekorigin() {
fmt.Println("Origin:")
b := bytes.NewReader(str)
fmt.Println(b.Seek(1, 0)) //0 means relative to the origin of the file
c, _ := b.ReadByte()
fmt.Println(string(c))
}
func seekcurrent() {
fmt.Println("Current:")
b := bytes.NewReader(str)
b.ReadByte() // read next byte
b.ReadByte() // read another byte
fmt.Println(b.Seek(1, 1)) // 1 means relative to the current offset
c, _ := b.ReadByte()
fmt.Println(string(c))
}
func seekend() {
fmt.Println("End:")
b := bytes.NewReader(str)
fmt.Println(b.Seek(-2, 2)) //2 means relative to the end
c, _ := b.ReadByte()
fmt.Println(string(c))
}
func main() {
seekorigin()
seekcurrent()
seekend()
}
Output :
Origin:
1 <nil>
b
Current:
3 <nil>
d
End:
4 <nil>
e
Reference :
Advertisement
Something interesting
Tutorials
+6k Golang : Convert Chinese UTF8 characters to Pin Yin
+16.1k Golang : How to check if input from os.Args is integer?
+14.4k Golang : How to pass map to html template and access the map's elements
+8.1k Golang : HTTP Server Example
+8.3k Golang: Prevent over writing file with md5 hash
+18.4k Golang : Read binary file into memory
+3.6k Java : Get FX sentiment from website example
+13.8k Golang : unknown escape sequence error
+20.2k Golang : Reset or rewind io.Reader or io.Writer
+5.6k Fix fatal error: evacuation not done in time problem
+11.3k Golang : Post data with url.Values{}
+80.7k Golang : How to return HTTP status code?