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

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

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

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

读写二进制数据

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 中获取的是什么数据。如果没有,则可以将数据获取到适合该大小的任何类型。


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

查看所有标签

猜你喜欢:

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

程序设计基础

程序设计基础

谢书良 / 2010-5 / 29.50元

《程序设计基础》是为从来没有接触过程序设计的读者编写的“零起点”入门教材。全书共分8章,第1章主要介绍程序设计的概念和程序运行的环境,第2章介绍了基本的数据类型、运算符与表达式,第3章介绍面向过程程序的顺序、分支选择和循环三种控制结构,第4章至第7章分别介绍了数组、指针的概念,结构体和其他数据类型,函数及其调用,内容涵盖了C++面向过程程序设计内容,与C语言教材完全兼容。第8章是体现《程序设计基础......一起来看看 《程序设计基础》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具