内容简介:本文讲解了如何以二进制形式编写和读取任何类型。
本文讲解了如何以二进制形式编写和读取任何类型。
读写二进制数据
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
中获取的是什么数据。如果没有,则可以将数据获取到适合该大小的任何类型。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法的陷阱
阿里尔•扎拉奇 (Ariel Ezrachi)、莫里斯•E. 斯图克 (Maurice E. Stucke) / 余潇 / 中信出版社 / 2018-5-1 / CNY 69.00
互联网的存在令追求物美价廉的消费者与来自世界各地的商品只有轻点几下鼠标的距离。这诚然是一个伟大的科技进步,但却也是一个发人深思的商业现象。本书中,作者扎拉奇与斯图克将引领我们对由应用程序支持的互联网商务做出更深入的检视。虽然从表面上看来,消费者确是互联网商务兴盛繁荣过程中的获益者,可精妙的算法与数据运算同样也改变了市场竞争的本质,并且这种改变也非总能带来积极意义。 首当其冲地,危机潜伏于计算......一起来看看 《算法的陷阱》 这本书的介绍吧!