I am using encoding/binary to read/write (struct)data to/from file. Some times , I need to seek in the file while reading . how to do this in go. Check the code below
package main import ( _ "bytes" "fmt" _ "math" "bufio" "encoding/binary" "os" ) func main() { var pi float64 //b := []byte{0x18, 0x2d, 0x44, 0x54, 0xfb, 0x21, 0x09, 0x40, // 0x78, 0x2d, 0x44, 0x54, 0xfb, 0x21, 0x09, 0x40} //buf := bytes.NewReader(b) //err := binary.Read(buf, binary.LittleEndian, &pi) //if err != nil { // fmt.Println("binary.Read failed:", err) //} //fmt.Println(pi) //// Output: 3.141592653589793 //err = binary.Read(buf, binary.LittleEndian, &pi) //if err != nil { // fmt.Println("binary.Read failed:", err) //} //fmt.Println(pi) //------------------------------------------------------------ // open output file fo, err := os.Create("./output.bin") if err != nil { panic(err) } // make a write buffer var fl1 float64 = 3.13 var fl2 float64 = 3.14 w := bufio.NewWriter(fo) err = binary.Write(w, binary.LittleEndian, fl1) if err != nil { fmt.Println("binary.Write failed:", err) } err = binary.Write(w, binary.LittleEndian, fl2) if err != nil { fmt.Println("binary.Write failed:", err) } w.Flush() // close fo on exit and check for its returned error if err := fo.Close(); err != nil { panic(err) } //------------------------------------------------------------ fi, err := os.Open("./output.bin") if err != nil { panic(err) } // close fi on exit and check for its returned error defer func() { if err := fi.Close(); err != nil { panic(err) } }() rd := bufio.NewReader(fi) err = binary.Read(rd, binary.LittleEndian, &pi) if err != nil { fmt.Println("binary.Read failed:", err) } fmt.Println(pi) fi.seek()////????? err = binary.Read(rd, binary.LittleEndian, &pi) if err != nil { fmt.Println("binary.Read failed:", err) } fmt.Println(pi) } -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.