前言

这篇文章将讨论如何在 Golang 中读取文件。我们将使用以下包来处理这些文件。

整个文件读取

ioutil.ReadFile()

首先,让我们在我们程序所在的同一目录下存储一个文件。因此,我们的文件夹结构将是下面这样的。

___ 

|_ _ _ _ ilovego.txt | 
|_ _ _ _ main.go

main.go
ReadFile()
ReadFile(filename string) ([]byte, error)os.ReadFile(fileName)

内部 ReadFile 函数实现如下:

现在,让我们回到我们的程序:

ioutil.ReadFile("readthisfile.txt")log.Fatal()Fatal()Print()os.Exit(1)fmt.Println()contentstring(content)
ilovego.txt

I Love Golang,
This is One of the Best Languages on the World!

最后,执行上述代码,可以看到如下输出:

$ go run main.go
I Love Golang, 
This is One of the Best Languages on the World!

按行读取

Split
os.Open()

执行程序,结果如下:

逐个单词读取

我们还可以通过逐个单词来读取文件:

运行代码:

$ go run main.go
I
Love
Golang,
This
is
One
of
the
Best
Languages
on
the
World!

以数据块的形式读取文件

一次性读取整个文件似乎是一种简单的方法,但有时我们需要从内存管理的角度使我们的程序得到一些优化。Golang 提供了一种分块读取文件的方法,而不是整个或甚至逐行读取。因为如果一行的大小太大,逐行读取也可能是低效的。

二进制读取

hex

总结

ioutil.ReadFile