如何在 Golang 中将文件读取到字符串中?
要将文件读取到字符串中,我们需要使用 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)
}
// Convert []byte to string
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)
}
// Convert []byte to string
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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP