Vai al contenuto principale
Pubblicato il

File (Lettura) in Go

Condividi:

Introduzione

La lettura di file è una delle operazioni più comuni nella programmazione. Che si tratti di configurazioni, dati persistenti o elaborazione, leggere file è fondamentale. Go, con il suo approccio pratico ed efficiente, fornisce diverse librerie e funzioni per facilitare questo compito.

Leggere l'Intero File

Uno dei modi più semplici per leggere un file in Go è usare la funzione ioutil.ReadFile.

import (
  "fmt"
  "io/ioutil"
)

func main() {
  contenuto, err := ioutil.ReadFile("esempio.txt")

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

  fmt.Println(string(contenuto))
}

Lettura con il Pacchetto "os"

Per avere un controllo più granulare sulla lettura, possiamo usare il pacchetto os:

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

func main() {
  file, err := os.Open("esempio.txt")

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

  defer file.Close()

  scanner := bufio.NewScanner(file)

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

  if err := scanner.Err(); err != nil {
    fmt.Println("Errore di lettura:", err)
  }
}

Leggere Riga per Riga

Per file di grandi dimensioni, leggere riga per riga può essere più efficiente:

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

func leggiFileRigaPerRiga(nomeFile string) error {
  file, err := os.Open(nomeFile)

  if err != nil {
    return err
  }

  defer file.Close()

  scanner := bufio.NewScanner(file)

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

  return scanner.Err()
}

Conclusione

Leggere file in Go è un'operazione intuitiva grazie all'approccio modulare del linguaggio e alle librerie fornite. Indipendentemente dalla complessità delle tue esigenze, Go ha gli strumenti per aiutarti a lavorare con i file in modo efficace.

Happy coding!