Avatar ·

Como ler um arquivo linha por linha em Go: guia passo a passo

Olá a todos! Comecei a estudar Go recentemente e me deparei com uma tarefa que parece simples, mas por algum motivo está me causando dificuldades. Preciso ler um arquivo de texto linha por linha. O arquivo pode ser bastante grande (várias centenas de megabytes), então quero evitar carregar todo o conteúdo na memória.\n\nAqui está o que tentei:\n\n```go\npackage main\n\nimport (\n "fmt"\n "os"\n)\n\nfunc main() {\n data, err := os.ReadFile("file.txt")\n if err != nil {\n panic(err)\n }\n lines := strings.Split(string(data), "")\n for _, line := range lines {\n fmt.Println(line)\n }\n}\n```\n\nMas esse código carrega o arquivo inteiro na memória, o que não é eficiente para arquivos grandes. Além disso, ouvi dizer que em Go existe um scanner especial para leitura linha por linha, mas não consigo entender como