go基础库之读写二进制数据

栏目: Go · 发布时间: 4年前

内容简介:本文讲解了如何以二进制形式编写和读取任何类型。

本文讲解了如何以二进制形式编写和读取任何类型。

读写二进制数据

Golang 版本

1.12.1

前言

本文讲解了如何以二进制形式编写和读取任何类型。

实现

package main

import (
	"bytes"
	"encoding/binary"
	"fmt"
)

func main() {
	// Writing binary values
	buf := bytes.NewBuffer([]byte{})
	if err := binary.Write(buf, binary.BigEndian, 1.004);
		err != nil {
		panic(err)
	}
	if err := binary.Write(buf, binary.BigEndian,
		[]byte("Hello")); err != nil {
		panic(err)
	}

	// Reading the written values
	var num float64
	if err := binary.Read(buf, binary.BigEndian, &num);
		err != nil {
		panic(err)
	}
	fmt.Printf("float64: %.3f\n", num)
	greeting := make([]byte, 5)
	if err := binary.Read(buf, binary.BigEndian, &greeting);
		err != nil {
		panic(err)
	}
	fmt.Printf("string: %s\n", string(greeting))
}
$ go run main.go
float64: 1.004
string: Hello

原理

可以使用 encoding/binary 包写入二进制数据。 Write 函数使用 Writer 写入数据的位置,字节顺序( BigEndian / LittleEndian ),最后写入要写入 Writer 的值。

为了模拟读取二进制数据,可以使用 read 函数。注意,从二进制源读取数据并没有什么神奇之处。你需要确定从 Reader 中获取的是什么数据。如果没有,则可以将数据获取到适合该大小的任何类型。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming Ruby

Programming Ruby

Dave Thomas、Chad Fowler、Andy Hunt / Pragmatic Bookshelf / 2004-10-8 / USD 44.95

Ruby is an increasingly popular, fully object-oriented dynamic programming language, hailed by many practitioners as the finest and most useful language available today. When Ruby first burst onto the......一起来看看 《Programming Ruby》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具