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语言相近,但并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。
推荐阅读
-
go如何实现职责链模式
go如何实现职责链模式这篇文章主要讲解了“go如何实现职责链模式”...
-
Go Callvis如何使用
GoCallvis如何使用今天小编给大家分享一下GoCallv...
-
go pprof如何使用
gopprof如何使用这篇文章主要介绍“gopprof如何使用...
-
Go框架三件套Gorm、Kitex、Hertz怎么使用
Go框架三件套Gorm、Kitex、Hertz怎么使用本篇内容介绍...
-
Go语言单元测试和基准测试实例代码分析
Go语言单元测试和基准测试实例代码分析本篇内容主要讲解“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系统的演变