在 Golang 中,读取 文件 有四种方法,分别为:使用 ioutil.ReadFile 读取文件,使用 file.Read 读取文件,使用 bufio.NewReader 读取文件,使用 ioutil.ReadAll 读取文件。
func ReadFile(filename string) ([]byte, error)
参数 | 描述 |
---|---|
filename | 文件名。 |
返回值 | 描述 |
---|---|
[]byte | 读取到的文件内容。 |
error | 如果读取失败,返回错误信息,否则,返回 nil。 |
ioutil.ReadFile 读取文件只需要传入一个文件名做为 参数,读取成功,会将文件的内容做为一个字节数组返回,如果读取错误,将返回 error 信息。
使用 ReadFile 读取文件,不需要手动 打开与关闭文件,打开与关闭文件的动作,系统自动帮我们完成。同时,使用 ReadFile 读取文件时,只适合读取小文件,不适合读取大文件。
使用 ioutil.ReadFile 读取文件
package main
import (
"fmt"
"io/ioutil"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
fileName := "C:/haicoder.txt"
fileData, err := ioutil.ReadFile(fileName)
if err == nil{
fmt.Println("file content =", string(fileData))
}else{
fmt.Println("read file error =", err)
}
}
程序运行后,控制台输出如下:
我们使用 ioutil.ReadFile 传入文件名来读取文件,我们看到,最终成功读取了文件里面的内容,并通过 byte 数组的形式返回了文件内容。
同时,使用 ReadFile 读取文件,不需要手动打开与关闭文件。接着,我们删除 “C:/haicoder.txt” 文件,再一次运行程序,程序输出如下:
我们删除文件后,我们看到,再次读取文件,程序报错,因为文件不存在。
func ReadFile(filename string) ([]byte, error)
ioutil.ReadFile 读取文件只需要传入一个文件名做为参数,读取成功,会将文件的内容做为一个字节数组返回,如果读取错误,将返回 error 信息。
使用 ReadFile 读取文件,不需要手动打开与关闭文件,打开与关闭文件的动作,系统自动帮我们完成。同时,使用 ReadFile 读取文件时,只适合读取小文件,不适合读取大文件。