Saltar al contenido principal
Publicado el

Archivos (Lectura) en Go

Compartir:

Introducción

La lectura de archivos es una de las operaciones más comunes en programación. Ya sea para configuraciones, datos persistentes o procesamiento, leer archivos es fundamental. Go, con su enfoque práctico y eficiente, proporciona varias bibliotecas y funciones para facilitar esta tarea.

Leer el Archivo Completo

Una de las formas más sencillas de leer un archivo en Go es usar la función ioutil.ReadFile.

import (
  "fmt"
  "io/ioutil"
)

func main() {
  contenido, err := ioutil.ReadFile("ejemplo.txt")

  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  fmt.Println(string(contenido))
}

Lectura con el Paquete "os"

Para tener un control más granular sobre la lectura, podemos usar el paquete os:

import (
  "fmt"
  "os"
  "bufio"
)

func main() {
  archivo, err := os.Open("ejemplo.txt")

  if err != nil {
    fmt.Println("Error:", err)
    return
  }

  defer archivo.Close()

  scanner := bufio.NewScanner(archivo)

  for scanner.Scan() {
    fmt.Println(scanner.Text())
  }

  if err := scanner.Err(); err != nil {
    fmt.Println("Error de lectura:", err)
  }
}

Leer Línea por Línea

Para archivos grandes, leer línea por línea puede ser más eficiente:

import (
  "fmt"
  "bufio"
  "os"
)

func leerArchivoLineaALinea(nombreArchivo string) error {
  archivo, err := os.Open(nombreArchivo)

  if err != nil {
    return err
  }

  defer archivo.Close()

  scanner := bufio.NewScanner(archivo)

  for scanner.Scan() {
    fmt.Println(scanner.Text())
  }

  return scanner.Err()
}

Conclusión

Leer archivos en Go es una tarea intuitiva gracias al enfoque modular del lenguaje y a las bibliotecas proporcionadas. Independientemente de la complejidad de tus necesidades, Go tiene las herramientas para ayudarte a trabajar con archivos de forma efectiva.

Happy coding!