Golang : Saving(serializing) and reading file with GOB



Tags : golang save-file gob serializing-objects

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

Affiliate :

Hire Golang Developers


  See also : Golang : Tutorial on loading GOB and PEM files



Tags : golang save-file gob serializing-objects

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