Go 1.16+ 推荐用 os.ReadFile 一次性读取小到中等文本文件;大文件应使用 bufio.Scanner 按行流式读取;非 UTF-8 编码需借助 golang.org/x/text/encoding 转码。

Go 语言中读取文本文件最常用、最简单的方式是使用 ioutil.ReadFile(Go 1.16+ 已迁移至 os.ReadFile),它会一次性把整个文件内容加载进内存并返回字节切片,再转成字符串即可。
从 Go 1.16 开始,ioutil.ReadFile 被弃用,官方建议改用 os.ReadFile,功能完全一致,更轻量、无额外依赖。
os.ReadFile(filename string) ([]byte, error)
string(data)
示例:
package main若仍在使用 Go 1.15 或更早版本,可继续用 ioutil.ReadFile,需导入 io/ioutil 包(Go 1.16+ 该包已弃用,不推荐新项目使用)。
立即学习“go语言免费学习笔记(深入)”;
os.ReadFile 完全相同os.ReadFile
当文件很大(几十 MB 以上)或不确定大小时,不建议一次性读入内存。可用 bufio.Scanner 按行流式读取:
scanner.Buffer 调整示例(逐行打印):
scanner := bufio.NewScanner(file)Go 原生只支持 UTF-8(含带 BOM 的 UTF-8)。如果文件是 GBK、BIG5 等编码,需借助第三方库(如 golang.org/x/text/encoding)先解码:
bytes.TrimPrefix(data, []byte("\xef\xbb\xbf")) 清除encoding.RegisterEncoding() + transform.NewReader 解码后再读基本上就这些。小文件用 os.ReadFile 最省心;大文件或需逐行处理时上 bufio.Scanner;非 UTF-8 编码才考虑转码。不复杂但容易忽略版本差异和编码细节。
以上就是如何使用Golang读取文本文件内容_Golangioutil ReadFile文件读取方法说明的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号