如何在Go中逐行读取文件:分步指南
大家好!我是一名Go新手开发者,遇到了逐行读取文本文件的问题。我需要处理一个大约500MB的大型日志文件,其中每一行都是一条独立的记录。
问题在于,我不想一次性将整个文件加载到内存中,因为它太大了。我尝试过使用`ioutil.ReadFile()`,但这会将所有内容加载到内存中,导致程序变慢。而且,如果文件更大,可能会导致内存耗尽。
以下是我尝试过的代码:
```go
package main
import (
"fmt"
"io/ioutil"
"strings"
)
func main() {
data, err := ioutil.ReadFile("large_log.txt")
if err != nil {
fmt.Println("错误:", err)
return
}
lines := strings.Split(string(data), "\n")
for i, line := range lines {
fmt.Printf("行 %d: %s\n", i+1, line)
}
}
```
这段代码可以工作,但它将整个文件加载到内存中,效率低下。而且,如果文件中存在