golang 读写二进制文件(2)

441 阅读1分钟

golang 使用encoding/gob包读写二进制文件

上篇介绍了使用"encoding/binary"包读写二进制文件,这次记录使用encoding/gob包读写二进制文件

写入数据文件
import (
	"encoding/gob"
	"fmt"
	"os"
)

func main() {
	info := "this is my text content" // 文本内容
	file, err := os.Create("binbin") // 创建文件, "binbin"是文件名字
	if err != nil {
		fmt.Println("文件创建失败", err.Error())
		return
	}
	defer file.Close()
	encoder := gob.NewEncoder(file)
	err = encoder.Encode(info)
	if err != nil {
		fmt.Println("编码错误", err.Error())
		return
	}
	fmt.Println("操作成功")
}

执行上面代码会在当前目录下生成二进制文件 binbin

读取二进制文件内容
import (
	"encoding/gob"
	"fmt"
	"os"
)

func main() {
	file, err := os.Open("binbin")
	if err != nil {
		fmt.Println("文件打开失败", err.Error())
		return
	}
	defer file.Close()
	decoder := gob.NewDecoder(file)
	var info string
	err = decoder.Decode(&info)
	if err != nil {
		fmt.Println("解码失败", err.Error())
	} 
	fmt.Println("解码成功")
	fmt.Println(info)
}

执行结果:

解码成功
this is my text content