无法解码gob数据

时间:2013-11-25 21:03:26

标签: go

我有一个简单的结构类型,我正在编码。但是,在解码数据时,我正在做一些根本错误的事情。每次我尝试解码时,都会出现EOF恐慌错误。

//将地图编码为gob。将gob保存到磁盘。从磁盘读取gob。将gob解码为另一个地图。 包主要

import (
        "fmt"
        "encoding/gob"
        "bytes"
        "io/ioutil"
)

type hashinfo struct {
  fname string 
  hash string
}



func main() {

        thing := []hashinfo{
            {"rahul","test"},
            {"boya","test2"},
        }

        m := new(bytes.Buffer) 
        enc := gob.NewEncoder(m)
        enc.Encode(thing)
        err := ioutil.WriteFile("gob_data", m.Bytes(), 0600) 
        if err != nil {
                panic(err)
        }
        fmt.Printf("just saved gob with %v\n", thing)


        n,err := ioutil.ReadFile("gob_data")
        if err != nil {
                fmt.Printf("cannot read file")
                panic(err)
        } 
        p := bytes.NewBuffer(n) 
        dec := gob.NewDecoder(p)
        e := []hashinfo{}
        err = dec.Decode(&e)
        if err != nil {
                fmt.Printf("cannot decode")
                panic(err)
        } 
        fmt.Printf("just read gob from file and it's showing: %v\n", e)
}

我创建了e:= [] hashinfo {}对象以解码gobject。我在那里做错了吗?

1 个答案:

答案 0 :(得分:3)

type hashinfo中的字段未导出,无法反序列化。尝试使用FnameHash