龙空技术网

Golang读写二进制文件方法(一)

路多辛 274

前言:

目前我们对“golang 读写文件”大致比较关怀,姐妹们都想要分析一些“golang 读写文件”的相关资讯。那么小编也在网摘上汇集了一些对于“golang 读写文件””的相关文章,希望我们能喜欢,兄弟们快快来学习一下吧!

本文介绍使用 encoding/gob 包读写二进制文件的方法。

gob是Golang自带的一个数据结构序列化的编码/解码工具,和JSON、XML、Google 的 protocol buffers类似。gob编码使用Encoder,解码使用Decoder。一种典型的应用场景就是RPC(remote procedure calls)。

接下来演示一下序列化数据后保存到本地,再反序列化本地的数据。

序列化数据后保存到本地:

package mainimport (	"encoding/gob"	"fmt"	"os")func main() {	data := "测试读写二进制文件"	file, err := os.Create("bin") // 创建文件	if err != nil {		fmt.Println("文件创建失败", err.Error())		return	}	defer file.Close()	encoder := gob.NewEncoder(file)	err = encoder.Encode(data)	if err != nil {		fmt.Println("编码错误", err.Error())		return	}}
反序列化本地的数据
package mainimport (	"encoding/gob"	"fmt"	"os")func main() {	file, err := os.Open("bin")	if err != nil {		fmt.Println("文件打开失败", err.Error())		return	}	defer file.Close()	decoder := gob.NewDecoder(file)	var data string	err = decoder.Decode(&data)	if err != nil {		fmt.Println("解码失败", err.Error())		return	}	fmt.Println(data)}

更多关于 encoding/gob 的内容请参考此包的源代码。

标签: #golang 读写文件