go 语言文件读取

方式一 使用 os.Open 函数

package main

import (
	"io"
	"os"
)

func main() {
	file, err := os.Open("./test.txt")
	// 注意关闭文件
	defer file.Close()
	if err == nil {
		var content []byte
		// 使用 for 循环读取全部内容
		for {
			// 创建切片保存字节
			var temStr = make([]byte, 128)
			// 使用file.Read 读取内容
			// 返回读取到的长度 错误
			len, err := file.Read(temStr)
			// 读取完毕
			if err == io.EOF {
				break
			} else {
				content = append(content, temStr[:len]...)
			}
		}
		println(string(content))
	}
}

方式二 通过 bufio 方式读取

package main

import (
	"bufio"
	"io"
	"os"
)

func main() {
	file, err := os.Open("./test.txt")
	// 注意关闭文件
	defer file.Close()
	if err == nil {
		reader := bufio.NewReader(file)
		var content string
		for {
			// 一次读取一行
			str, err := reader.ReadString('\n')
			if err == io.EOF {
				// 最后一行也需要拼接
				content += str
				break
			} else {
				content += str
			}
		}
		println(content)
	}
}

方式三 通过 io/ioutil 工具包来读取

package main

import (
	"io/ioutil"
)

func main() {
	content, err := ioutil.ReadFile("./test.txt")
	if err == nil {
		println(string(content))
	}
}