Go中如何通过Gob包序列化二进制数据

Go中如何通过Gob包序列化二进制数据

Go中如何通过Gob包序列化二进制数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。


下面给大家介绍了如何基于 JSON 和 CSV 格式序列化数据到文本文件,除此之外,Go 官方还提供了 encoding/gob 包将数据序列化为二进制流以便通过网络进行传输。

我们在前面 Go 入门教程中已经介绍过 Gob 包作为二进制数据编解码工具的基本使用,这里简单演示下如何将 Gob 编码后的二进制数据写入磁盘文件:

packagemain

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

typeArticlestruct{
Idint
Titlestring
Contentstring
Authorstring
}

//写入二进制数据到磁盘文件
funcwrite(datainterface{},filenamestring){
buffer:=new(bytes.Buffer)
encoder:=gob.NewEncoder(buffer)
err:=encoder.Encode(data)
iferr!=nil{
panic(err)
}
err=ioutil.WriteFile(filename,buffer.Bytes(),0600)
iferr!=nil{
panic(err)
}
}

//从磁盘文件加载二进制数据
funcread(datainterface{},filenamestring){
raw,err:=ioutil.ReadFile(filename)
iferr!=nil{
panic(err)
}
buffer:=bytes.NewBuffer(raw)
dec:=gob.NewDecoder(buffer)
err=dec.Decode(data)
iferr!=nil{
panic(err)
}
}

funcmain(){
article:=Article{
Id:1,
Title:"基于Gob包编解码二进制数据",
Content:"通过Gob包序列化二进制数据以便通过网络传输",
Author:"学院君",
}
write(article,"article_data")
vararticleDataArticle
read(&articleData,"article_data")
fmt.Printf("%#v\n",articleData)
}

运行上述代码,可以正常解码出二进制数据,说明通过 Gob 包编解码成功:

在当前目录下也可以看到生成的 article_data 文件,其中包含的是二进制格式的编码数据:


什么是go

go是golang的简称,golang 是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其语法与 C语言相近,但并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。

发布于 2022-01-17 21:58:38
收藏
分享
海报
0 条评论
42
上一篇:go-kit该如何入门 下一篇:编写可测试的better go代码示例分析
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码