Golang os.File.Read() and Seek() functions example
package os
Golang os.File.Read() and os.File.Seek() functions usage example
NOTE : Seek is normally used for Random File Access operation, such as reading binary file defined by a struct.
package main
import (
"fmt"
"io"
"os"
)
func main() {
file, err := os.Open("binary.dat")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
// create a 1 kilo bytes buffer to keep chunks that are read
buffer := make([]byte, 1024)
// first read
n, err := file.Read(buffer)
if err != nil && err != io.EOF {
panic(err)
}
// out the buffer content
fmt.Println(string(buffer[:n]))
// start next read at where we stop..which is position 1024 bytes
// from origin
newoffset, err := file.Seek(1024, 0)
if err != nil && err != io.EOF {
panic(err)
}
// next read
fmt.Println("---------------------------------")
n, err = file.Read(buffer)
if err != nil && err != io.EOF {
panic(err)
}
// out the buffer content
fmt.Println(string(buffer[:n]))
fmt.Println("New off set : ", newoffset)
}
References :
Advertisement
Something interesting
Tutorials
+18.6k Golang : Generate thumbnails from images
+18.7k Golang : Implement getters and setters
+16k Golang : How to reverse elements order in map ?
+11.1k Golang : Roll the dice example
+6.1k Golang : Get missing location after unmarshal binary and gob decode time.
+23.1k Golang : Randomly pick an item from a slice/array example
+10.3k Golang : Embed secret text string into binary(executable) file
+24k Golang : Find biggest/largest number in array
+5.4k Golang : Reclaim memory occupied by make() example
+5.3k Golang : How to deal with configuration data?
+13.7k Golang : Activate web camera and broadcast out base64 encoded images
+9k Golang : Inject/embed Javascript before sending out to browser example