gpt4 book ai didi

file-io - 如何在 Go 中读取二进制文件

转载 作者:IT老高 更新时间:2023-10-28 13:02:58 27 4
gpt4 key购买 nike

我对 Go 完全陌生,我正在尝试读取一个二进制文件,一次一个字节或几个字节。该文档没有多大帮助,我找不到任何教程或简单示例(顺便说一句,Google 怎么会给他们的语言起这样一个无法用谷歌搜索的名字?)。基本上,我怎样才能打开一个文件,然后将一些字节读入缓冲区?有什么建议吗?

最佳答案

对于操作文件,os 包是你的 friend :

f, err := os.Open("myfile")
if err != nil {
panic(err)
}
defer f.Close()

要更好地控制文件的打开方式,请参阅 os.OpenFile() 代替 (doc) .

对于读取文件,有很多方法。 os.Open(上例中的f)返回的os.File类型实现了io.Reader 接口(interface)(它有一个带有正确签名的 Read() 方法),它可以直接用于读取缓冲区中的一些数据(一个 []byte)或者它也可以包装在缓冲阅读器中(类型 bufio.Reader)。

对于二进制数据,encoding/binary 包非常有用,可以将字节序列读入某种类型化的数据结构中。您可以在 Go doc here 中查看示例. binary.Read() 函数可以与使用 os.Open() 函数读取的文件一起使用,因为正如我所提到的,它是一个 io。阅读器.

还有一个简单易用的io/ioutil包,它允许你在一个 byte slice 中一次读取整个文件(ioutil.ReadFile(),它采用文件名,因此您甚至不必自己打开/关闭文件),或 ioutil.ReadAll() 采用 io.Reader 并返回包含整个文件的字节 slice 。这是doc on ioutil .

最后,正如其他人所提到的,您可以使用“golang”在 Google 上搜索 Go 语言,您应该会找到所需的一切。 golang-nuts mailing list也是一个寻找答案的好地方(发帖前一定要先搜索一下,很多东西已经回答过了)。要查找第三方软件包,请查看 godoc.org网站。

HTH

关于file-io - 如何在 Go 中读取二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14514201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com