文件读取是所有的编程语言都必须掌握的知识,下面我们详细的学习Go语言文件操作。
(1)将整个文件读取到内存
将整个文件读取到内存是最基本的文件操作之一。这需要使用 ioutil 包中的 ReadFile 函数。
让我们在 Go 程序所在的目录中,读取一个文件。我们会使用 Go 程序 filehandling.go 来读取它。test.txt 包含文本 “Hello World. Welcome to file handling in Go”。我的文件夹结构如下:
src
filehandling
filehandling.go
hello.txt
package main
import (
"fmt"
"io/ioutil"
)
func main() {
data, err := ioutil.ReadFile("Hello.txt")
if err != nil {
fmt.Println("File reading error", err)
return
}
fmt.Println(data)
fmt.Println("Contents of file:", string(data))
}
例如,对于 linux/mac,如果 test.txt 位于 /home/naveen/go/src/filehandling,可以使用下列步骤来运行程序。
$ cd /home/naveen/go/src/filehandling/
$ go install filehandling
$ workspacepath/bin/filehandling
对于 windows,如果 test.txt 位于 C:Usersnaveen.rgosrcfilehandling,则使用下列步骤。
> cd C:Usersnaveen.rgosrcfilehandling
> go install filehandling
> workspacepathbinfilehandling.exe
这是因为 Go 是编译型语言。go install 会根据源代码创建一个二进制文件。二进制文件独立于源代码,可以在任何位置上运行。由于在运行二进制文件的位置上没有找到 test.txt,因此程序会报错,提示无法找到指定的文件。
有三种方法可以解决这