Golang 如何把一个文件读成一个字符串

Golang 如何把一个文件读成一个字符串

为了把文件读成字符串,我们需要利用Go的标准库提供的io/ioutil包。

io/ioutil 包里面,有一个叫做 ReadFile() 的函数,它用来打开一个文件,然后把它的内容转换成一个字节片,如果由于某种原因,它不能做到这一点,那么它也会返回一个错误。

下面是 ReadLine() 函数的语法。

func ReadFile(filename string) ([]byte, error)

需要注意的是,如果上述函数调用成功,那么它将返回 err == nil ,而不是 err == EOF。 是这样的,因为上述函数读取了整个文件,它不会把来自Read的EOF当作一个错误。

我们将得到一个字节片,即 [ ] 字节 ,而不是一个字符串作为结果,为了把它转换成一个字符串,我们需要做基本的类型转换。

让我们首先考虑一个案例,我们有一个名为 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程