Documentação de gob A package gob implementa a codificação/decodificação de valores Go para/de formato binário. Save e Load de arquivos formato gob
package main
import (
"gob"
"bytes"
"io/ioutil"
"fmt"
)
type MyStruct struct {
A int
B string
}
func main() {
my := MyStruct {
A: 1,
B: "X",
} my1 := new(MyStruct)
// Salvando a struct my (MyStruct) no arquivo "filename".
saveToFile(my, "filename") // Recuperando a struct my em my1 do arquivo "filename".
loadFromFile(my1, "filename") fmt.Printf("A: %d, B: %s\n", my1.A, my1.B) //=> A: 1, B: X
}
func saveToFile(data interface{}, filename string) {
b := new(bytes.Buffer)
enc := gob.NewEncoder(b)
enc.Encode(data)
ioutil.WriteFile(filename, b.Bytes(), 0600)
}
func loadFromFile(data interface{}, filename string) {
doc, _ := ioutil.ReadFile(filename)
dec := gob.NewDecoder(bytes.NewBuffer(doc))
dec.Decode(data)
}
|