1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package store

import(
    "io/ioutil"
    "encoding/json"
    "os"
)

type Monster struct{<!-- -->
    Name string `json:"name"`
    Age uint        `json:"age"`
    Skill string    `json:"skill"`
}

//序列化本实体对象 方法
func (this *Monster) Store(savePath string ) bool  {<!-- -->
    marshalSplice,err := json.Marshal((*this))
    if err != nil {<!-- -->
        return false
    }
    err = ioutil.WriteFile(savePath,marshalSplice,0666)
    if err !=nil {<!-- -->
        return false
    }
    return true
}

//反序列化方法
func (this *Monster) Restore(unMarPath string) Monster  {<!-- -->
    var resultMon Monster
    //1. 判断文件路径是否合法
    _,err := os.Lstat(unMarPath)
    if os.IsNotExist(err) {<!-- -->
        return resultMon
    }
    //2. 读取文件内容
    readSplice,rdErr := ioutil.ReadFile(unMarPath)
    if rdErr != nil  {<!-- -->
        return resultMon
    }
    err = json.Unmarshal(readSplice,&resultMon)
    if err != nil  {<!-- -->
        return Monster{<!-- -->}
    }
    return resultMon
}

func main()  {<!-- -->
   
}