如何在Go中读取二进制文件
我对Go完全陌生,我试图读取一个二进制文件,一次读取一个字节或几个字节。该文档并没有多大帮助,我找不到任何教程或简单示例(顺便说一句,Google如何给他们的语言提供这样一个难以理解的名称?)。基本上,如何打开文件,然后将一些字节读入缓冲区?有什么建议吗?
回答:
要处理文件,该os
软件包是您的朋友:
f, err := os.Open("myfile")if err != nil {
panic(err)
}
defer f.Close()
在过去的文件是如何打开更多的控制,看到os.OpenFile()
代替(DOC)
。
为了读取文件,有很多方法。(在上面的示例中)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()
这需要a
io.Reader
并返回包含整个文件的字节片。这是ioutil上的文档。
最后,就像其他人提到的那样,您可以使用“
golang”搜索有关Go语言的信息,然后您将找到所需的一切。该golang螺母邮件列表也是寻找答案的好地方(确保发布前先搜索,很多东西已经回答了)。要查找第三方软件包,请访问godoc.org网站。
高温超导
以上是 如何在Go中读取二进制文件 的全部内容, 来源链接: utcz.com/qa/423813.html