Avatar ·

如何在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) } } ``` 这段代码可以工作,但它将整个文件加载到内存中,效率低下。而且,如果文件中存在