Publicado em

Ficheiros (Ler) em Go

Partilhar:

Introdução

A leitura de ficheiros é uma das operações mais comuns em programação. Seja para configurações, dados persistentes ou para processamento, ler ficheiros é fundamental. Go, com sua abordagem prática e eficiente, fornece várias bibliotecas e funções para facilitar essa tarefa.

Ler Todo o Ficheiro

Uma das maneiras mais simples de ler um ficheiro em Go é usar a função ioutil.ReadFile.

import (
  "fmt"
  "io/ioutil"
)

func main() {
  conteudo, erro := ioutil.ReadFile("exemplo.txt")

  if erro != nil {
    fmt.Println("Erro:", erro)
    return
  }

  fmt.Println(string(conteudo))
}

Leitura com o Pacote "os"

Para ter um controle mais granular sobre a leitura, podemos usar o pacote os:

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

func main() {
  ficheiro, erro := os.Open("exemplo.txt")

  if erro != nil {
    fmt.Println("Erro:", erro)
    return
  }

  defer ficheiro.Close()

  scanner := bufio.NewScanner(ficheiro)

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

  if erro := scanner.Err(); erro != nil {
    fmt.Println("Erro de leitura:", erro)
  }
}

Ler Linha por Linha

Para ficheiros grandes, ler linha por linha pode ser mais eficiente:

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

func lerFicheiroLinhaALinha(nomeFicheiro string) error {
  ficheiro, erro := os.Open(nomeFicheiro)

  if erro != nil {
    return erro
  }

  defer ficheiro.Close()

  scanner := bufio.NewScanner(ficheiro)

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

  return scanner.Err()
}

Conclusão

Ler ficheiros em Go é uma tarefa intuitiva graças à abordagem modular da linguagem e às bibliotecas fornecidas. Independentemente da complexidade da sua necessidade, Go tem as ferramentas para ajudá-lo a trabalhar com ficheiros de forma eficaz.

Happy coding!