带缓冲读取文件
概念说明
bufio 提供带缓冲的 IO 能力。
读取文本文件时,bufio.Scanner 常用于逐行扫描。
逐行读取适合日志、配置、普通文本等按行处理的场景。
如果单行内容特别大,需要关注 Scanner 默认缓冲区限制。
语法/规则
- 使用
bufio.NewScanner(file)创建扫描器。 - 默认按行扫描。
- 使用
scanner.Scan()推进到下一行。 - 使用
scanner.Text()获取当前行文本。 - 循环结束后使用
scanner.Err()检查扫描错误。
逐行读取示例
| |
输出结果:
| |
常见错误
- 循环结束后不检查
scanner.Err(),无法发现中途扫描错误。 - 用
Scanner处理超长行时不调整缓冲区,可能触发token too long。 - 忘记关闭底层文件,导致资源未及时释放。