import (
"fmt"
"encoding/gob"
"bytes"
"io/ioutil"
)
type Data struct {
Text string
Num float32
Arr []int
}
var data = Data {
"Hello", 3.14, []int{2, 5, 7},
}
//Write Binary Data
var buff bytes.Buffer
enc := gob.NewEncoder(&buff)
enc.Encode(data)
var data_b = buff.Bytes()
err := ioutil.WriteFile(
"data.bin", data_b, 0644)
if err != nil {
fmt.Println(err)
}
//Read Binary Data
data_b2, err := ioutil.ReadFile("data.bin")
if err != nil {
fmt.Print(err)
}
buff2 := bytes.NewBuffer(data_b2)
data2 := Data{}
dec := gob.NewDecoder(buff2)
dec.Decode(&data2)
//data2 is {Hello 3.14 [2 5 7]}
fmt.Println("data2 is", data2)