Golang : Saving(serializing) and reading file with GOB
Golang has a package ( GOB ) that allows developers to store memory values( such as int[], float64[] or any kind of structs ) into files for storage, store in a database, transmit over a network or processing the data with another program. Saving memory values to file is also known as serializing Golang objects. In this tutorial, we will learn how to serialize int[]
values to a file in a program and retrieve the int[]
values from another program.
savefilegob.go
package main
import (
"encoding/gob"
"fmt"
"os"
)
func main() {
data := []int{101, 102, 103}
// create a file
dataFile, err := os.Create("integerdata.gob")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// serialize the data
dataEncoder := gob.NewEncoder(dataFile)
dataEncoder.Encode(data)
dataFile.Close()
}
and retrieve the serialized objects or values:
readfilegob.go
package main
import (
"encoding/gob"
"fmt"
"os"
)
func main() {
var data []int
// open data file
dataFile, err := os.Open("integerdata.gob")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
dataDecoder := gob.NewDecoder(dataFile)
err = dataDecoder.Decode(&data)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
dataFile.Close()
fmt.Println(data)
}
Output :
[101 102 103]
References :
http://golang.org/pkg/encoding/gob/
https://socketloop.com/references/golang-encoding-gob-encoder-encode-function-example
https://www.socketloop.com/references/golang-encoding-gob-newencoder-function-examples
See also : Golang : Tutorial on loading GOB and PEM files
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+29.1k Golang : Get first few and last few characters from string
+23.5k Golang : Check if element exist in map
+14.3k Golang : Convert IP version 6 address to integer or decimal number
+12.1k Golang : Find and draw contours with OpenCV example
+17.7k Golang : [json: cannot unmarshal object into Go value of type]
+9k Golang : Go as a script or running go with shebang/hashbang style
+12.1k Golang : Clean formatting/indenting or pretty print JSON result
+7.5k Golang : Scanf function weird error in Windows
+9.1k Golang : Gonum standard normal random numbers example
+13.7k Android Studio : Password input and reveal password example
+6.1k Golang : Debug with Godebug