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
+28k Golang : How to declare kilobyte, megabyte, gigabyte, terabyte and so on?
+9.1k Golang : How to tokenize source code with text/scanner package?
+17.8k Golang : Get RGBA values of each image pixel
+10.4k Golang : Generate DSA private, public key and PEM files example
+29.8k Golang : Convert an image file to []byte
+14k Golang : Force download file example
+6.4k Golang : Example of how to detect which type of script a word belongs to
+2k Golang : Fix go-cron set time not working issue
+10.6k Golang : Convert decimal number(integer) to IPv4 address
+6k Golang : Null and nil value
+8k Golang : Generate random Chinese, Japanese, Korean and other runes