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
+8.3k Golang: Prevent over writing file with md5 hash
+5.3k Swift : Convert string array to array example
+6.6k Golang : Totalize or add-up an array or slice example
+12.3k Golang : Validate email address
+36.4k Golang : Convert date or time stamp from string to time.Time type
+12.8k Golang : http.Get example
+11.3k Golang : Intercept and process UNIX signals example
+6k Golang : How to verify input is rune?
+27.5k Golang : dial tcp: too many colons in address
+10.3k Golang : Wait and sync.WaitGroup example
+9.3k Golang : Timeout example
+17k Golang : How to save log messages to file?