如何在 Golang 中将文件读入字符串?
go programmingserver side programmingprogramming
要将文件读入字符串,我们需要使用 Go 标准库提供的 io/ioutil 包。
在 io/ioutil 包中,有一个名为 ReadFile() 的函数,用于打开文件并将其内容转换为字节切片。如果由于某种原因无法执行此操作,它也会返回错误。
以下是 ReadLine() 函数的语法。
func ReadFile(filename string) ([]byte, error)
需要注意的是,如果上述函数调用成功,它将返回 err == nil,而不是err == EOF。确实如此,因为上述函数读取了整个文件,所以它不会将 Read 中的 EOF 视为错误。
我们将得到一个字节切片,即 []byte,而不是字符串。 为了将其转换为字符串,我们需要进行基本的类型转换。
首先考虑这样一种情况:我们有一个名为 gocode.txt 的文件,其中包含以下内容。
This file contains some random text.
现在,让我们看看打开此文件并将其转换为字符串的代码。
示例 1
考虑下面的代码。
package main import ( "fmt" "io/ioutil" "log" ) func main() { fileContent, err := ioutil.ReadFile("gocode.txt") if err != nil { log.Fatal(err) } // 将[]byte 转换为字符串 text := string(fileContent) fmt.Println(text) }
输出
如果我们在上面的代码上运行命令go run main.go,那么我们将在终端中得到以下输出。
This file contains some random text.
如果出于某种原因,我们将文件名更改为 gocode.txt 以外的其他名称,则代码将产生错误。
示例 2
考虑下面显示的代码。
package main import ( "fmt" "io/ioutil" "log" ) func main() { fileContent, err := ioutil.ReadFile("gocode.txt") if err != nil { log.Fatal(err) } // 将 []byte 转换为字符串 text := string(fileContent) fmt.Println(text) }
输出
如果我们在上述代码上运行命令 go run main.go,我们将在终端中得到以下输出。
2021/10/11 12:05:46 open gocode.txt: no such file or directory exit status 1