登录
首页 >  Golang >  Go问答

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

来源:Golang技术栈

时间:2023-04-12 15:35:15 501浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何在 Go 中读取二进制文件》,主要内容是讲解golang等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

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

正确答案

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

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

有关文件打开方式的更多控制,请参阅os.OpenFile()( doc)

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

特别是对于二进制数据,该encoding/binary包可能很有用,可以将字节序列读取到某种类型的数据结构中。您可以在此处的 Go 文档中查看示例。该binary.Read()函数可以与使用该os.Open()函数读取的文件一起使用,因为正如我所提到的,它是一个io.Reader.

还有一个简单易用的io/ioutil包,它允许你在一个字节片中一次读取整个文件(ioutil.ReadFile(),它需要一个文件名,所以你甚至不必自己打开/关闭文件),或者ioutil.ReadAll()需要aio.Reader并返回包含整个文件的字节切片。这是关于 ioutil 的文档

最后,正如其他人提到的,您可以使用“golang”搜索 Go 语言,您应该会找到所需的一切。golang [-nuts 邮件列表](https://groups.google.com/forum/#!forum/golang- nuts)也是一个寻找答案的好地方(发帖前一定要先搜索一下,很多东西已经回答过了)。要查找第三方软件包,请查看godoc.org网站。

高温高压

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>