Go中如何通过Gob包序列化二进制数据
发表于:2024-10-26 作者:千家信息网编辑
千家信息网最后更新 2024年10月26日,Go中如何通过Gob包序列化二进制数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。下面给大家介绍了如何基于 JSON
千家信息网最后更新 2024年10月26日Go中如何通过Gob包序列化二进制数据
Go中如何通过Gob包序列化二进制数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
下面给大家介绍了如何基于 JSON 和 CSV 格式序列化数据到文本文件,除此之外,Go 官方还提供了 encoding/gob
包将数据序列化为二进制流以便通过网络进行传输。
我们在前面 Go 入门教程中已经介绍过 Gob 包作为二进制数据编解码工具的基本使用,这里简单演示下如何将 Gob 编码后的二进制数据写入磁盘文件:
package main
import (
"bytes"
"encoding/gob"
"fmt"
"io/ioutil"
)
type Article struct {
Id int
Title string
Content string
Author string
}
// 写入二进制数据到磁盘文件
func write(data interface{}, filename string) {
buffer := new(bytes.Buffer)
encoder := gob.NewEncoder(buffer)
err := encoder.Encode(data)
if err != nil {
panic(err)
}
err = ioutil.WriteFile(filename, buffer.Bytes(), 0600)
if err != nil {
panic(err)
}
}
// 从磁盘文件加载二进制数据
func read(data interface{}, filename string) {
raw, err := ioutil.ReadFile(filename)
if err != nil {
panic(err)
}
buffer := bytes.NewBuffer(raw)
dec := gob.NewDecoder(buffer)
err = dec.Decode(data)
if err != nil {
panic(err)
}
}
func main() {
article := Article{
Id: 1,
Title: "基于 Gob 包编解码二进制数据",
Content: "通过 Gob 包序列化二进制数据以便通过网络传输",
Author: "学院君",
}
write(article, "article_data")
var articleData Article
read(&articleData, "article_data")
fmt.Printf("%#v\n", articleData)
}
运行上述代码,可以正常解码出二进制数据,说明通过 Gob 包编解码成功:
在当前目录下也可以看到生成的 article_data
文件,其中包含的是二进制格式的编码数据:
什么是go
go是golang的简称,golang 是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其语法与 C语言相近,但并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
数据
二进制
文件
序列
磁盘
功能
格式
编码
网络
语言
传输
帮助
清楚
成功
相近
代码
入门教程
内容
函数
发型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全创投发展
网络技术学啥比较好
网络安全法 处罚案例
网络安全课 腾讯
监控系统网络安全宣传
ip网络技术发展趋势
软件开发和测试时间分配
万德数据库下载
软件开发的职务有哪些
erp软件开发
腾讯云服务器内存使用率高
数据库挖掘系统包括
基于互联网技术的高科技公司
服务器的管理密码一般在哪
公众号软件开发服务平台
oracle数据库勒索
固牢网络安全阵地
aduit数据库配置
电脑如何删除服务器聊天记录
关于网络安全的作文2000
杭州蓝翔网络技术有限公司
数据库路由器软件
山东理工大学有软件开发
西安蓝牙软件开发费用
网络安全日答题答案
把网络安全作为最重要的
杭州掌玩网络技术怎么样
华诚网络技术有限公司
为什么管理信息系统需要数据库
戴尔服务器bios引导