如何在Go中逐行读取文件:逐步指南
大家好!我刚开始学习Go,遇到了一个看似简单但不知为何让我感到困难的任务。我需要逐行读取一个文本文件。文件可能非常大(几百兆字节),所以我想避免将整个内容加载到内存中。
以下是我尝试过的代码:
```go
package main
import (
"fmt"
"os"
)
func main() {
data, err := os.ReadFile("file.txt")
if err != nil {
panic(err)
}
lines := strings.Split(string(data), "\n")
for _, line := range lines {
fmt.Println(line)
}
}
```
但这段代码将整个文件加载到内存中,对于大文件来说效率不高。而且,我听说Go中有一个专门的scanner用于逐行读取,但我不知道如何正确使用它。
请告诉我如何在Go中高效地逐行读取文件,既节省内存又节省时间?我需要单独处理每一行,可能还需要