英文:
Convert binary File to array of bytes
问题
我想知道将二进制文件转换为[]byte
的最佳方法是什么。
以下是一个示例代码,但它无法正常工作。我想知道我应该如何调整它以返回内容:
func ReadFileAndReturnByteArray(extractedFilePath string) ([]byte, error) {
file, err := os.Open(extractedFilePath)
if err != nil {
return nil, err
}
defer file.Close()
fileinfo, err := file.Stat()
if err != nil {
fmt.Println(err)
return nil, err
}
filesize := fileinfo.Size()
buffer := make([]byte, filesize)
_, err = file.Read(buffer)
if err != nil {
fmt.Println(err)
return nil, err
}
return buffer, nil
}
请注意,这是一个用于将文件读取为[]byte
的函数。它打开文件,获取文件信息,然后创建一个与文件大小相同的缓冲区。最后,它将文件内容读取到缓冲区中,并返回缓冲区作为[]byte
类型的结果。
英文:
I'm wondering what is the best way to convert binary File
to []byte
Here is a sample code that doesn't work. I'm wondering how I should adjust it to return the content as
func ReadFileAndReturnByteArray(extractedFilePath string) ([]byte, error) {
file, err := os.Open(extractedFilePath)
if err != nil {
return nil, err
}
defer file.Close()
fileinfo, err := file.Stat()
if err != nil {
fmt.Println(err)
return nil, err
}
filesize := fileinfo.Size()
buffer := make([]byte, filesize)
_, err = file.Read(buffer)
if err != nil {
fmt.Println(err)
return nil, err
}
return buffer, nil
}
答案1
得分: 2
os包提供了一个ReadFile函数,它只适用于文件。它与你的ReadFileAndReturnByteArray
函数具有完全相同的签名,可以直接替换。
io包提供了ReadAll函数,它适用于任何io.Reader
。
示例:
func ReadFileAndReturnByteArray(extractedFilePath string) ([]byte, error) {
file, err := os.Open(extractedFilePath)
if err != nil {
return nil, err
}
defer file.Close()
return io.ReadAll(file)
}
英文:
The os package provides a ReadFile function which only works for files. It has the exact same signature as your ReadFileAndReturnByteArray
function and should be a drop-in replacement.
The io package provides the ReadAll function which works for any io.Reader
.
Example:
func ReadFileAndReturnByteArray(extractedFilePath string) ([]byte, error) {
file, err := os.Open(extractedFilePath)
if err != nil {
return nil, err
}
defer file.Close()
return io.ReadAll()
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论