Cómo leer un archivo línea por línea en Go: guía paso a paso
¡Hola a todos! Soy un desarrollador principiante de Go y tengo un problema con la lectura de un archivo de texto línea por línea. Necesito procesar un archivo de registro grande (aproximadamente 500 MB), donde cada línea es un registro separado.
El problema es que no quiero cargar todo el archivo en la memoria de una vez, ya que es muy grande. Probé usar `ioutil.ReadFile()`, pero esto carga todo el contenido en la memoria y el programa comienza a ralentizarse. Además, si el archivo resulta ser aún más grande, esto podría llevar al agotamiento de la memoria.
Esto es lo que probé:
```go
package main
import (
"fmt"
"io/ioutil"
"strings"
)
func main() {
data, err := ioutil.ReadFile("large_log.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
lines := strings.Split(string(data), "\n")
for i, line := range lines {
fmt.Printf("Línea %d: %s\n", i+1, line)
}
}
```
Este código funciona, pero carga todo el archivo en la memoria, lo cual no es eficiente. Además, si el archivo tiene