Go中如何通过Gob包序列化二进制数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
下面给大家介绍了如何基于 JSON 和 CSV 格式序列化数据到文本文件,除此之外,Go 官方还提供了 encoding/gob 包将数据序列化为二进制流以便通过网络进行传输。
encoding/gob
我们在前面 Go 入门教程中已经介绍过 Gob 包作为二进制数据编解码工具的基本使用,这里简单演示下如何将 Gob 编码后的二进制数据写入磁盘文件:
packagemainimport("bytes""encoding/gob""fmt""io/ioutil")typeArticlestruct{IdintTitlestringContentstringAuthorstring}//写入二进制数据到磁盘文件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")vararticleDataArticleread(&articleData,"article_data")fmt.Printf("%#v\n",articleData)}
运行上述代码,可以正常解码出二进制数据,说明通过 Gob 包编解码成功:
在当前目录下也可以看到生成的 article_data 文件,其中包含的是二进制格式的编码数据:
article_data
go是golang的简称,golang 是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其语法与 C语言相近,但并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
go如何实现职责链模式
Go Callvis如何使用
go pprof如何使用
Go框架三件套Gorm、Kitex、Hertz怎么使用
Go语言单元测试和基准测试实例代码分析
go Realize怎么使用
goRealize怎么使用本文小编为大家详细介绍“goReal...
14天学会Go语言第四天:Array Map Slice 数组 和切片
如何从 PHP 过渡到 Golang?
我是PHP开发者,转Go两个月了吧,记录一下使用Golang怎么一步步开发新项目。本着有坑填坑,有错改错的宗...
零经验Go语言MVC框架,并推荐PHP函数库和MySQL表自动转struct
最近搭建k8s系统,为了调试自动部署用Go做了个MVC框架,这是个适用于喜欢Go语言练习的框架,零Go语言经验学习Go;配合Go模...
从php到Golang系统的演变
用户名
密码
记住登录状态 忘记密码?
邮箱
确认密码
我已阅读并同意 用户协议