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
+4.2k Golang : Calculate half life decay example
+10.5k Golang : Get remaining text such as id or filename after last segment in URL path
+10k How to test Facebook App on localhost ?
+26.5k Get file path of temporary file in Go
+7.4k PHP : How to parse ElasticSearch JSON ?
+10k Golang : How to use if, eq and print properly in html template
+11.4k Golang : HTTP response JSON encoded data
+21.2k Golang : Round float to precision example
+6.6k Golang : Gorrila set route name and get the current route name
+24.6k Mac/Linux and Golang : Fix bind: address already in use error
+9.9k Golang : Intercept and process UNIX signals example
+9.1k Golang : How to tokenize source code with text/scanner package?