Zum Hauptinhalt springen
Veröffentlicht am

Dateien (Lesen) in Go

Teilen:

Einführung

Das Lesen von Dateien ist eine der häufigsten Operationen in der Programmierung. Ob für Konfigurationen, persistente Daten oder die Verarbeitung – das Lesen von Dateien ist grundlegend. Go bietet mit seinem praktischen und effizienten Ansatz verschiedene Bibliotheken und Funktionen, um diese Aufgabe zu erleichtern.

Die Gesamte Datei Lesen

Eine der einfachsten Möglichkeiten, eine Datei in Go zu lesen, ist die Verwendung der Funktion ioutil.ReadFile.

import (
  "fmt"
  "io/ioutil"
)

func main() {
  inhalt, err := ioutil.ReadFile("beispiel.txt")

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

  fmt.Println(string(inhalt))
}

Lesen mit dem "os"-Paket

Für eine feinkörnigere Kontrolle über das Lesen können wir das Paket os verwenden:

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

func main() {
  datei, err := os.Open("beispiel.txt")

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

  defer datei.Close()

  scanner := bufio.NewScanner(datei)

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

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

Zeile für Zeile Lesen

Bei großen Dateien kann das zeilenweise Lesen effizienter sein:

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

func dateiZeileWeiseLesen(dateiName string) error {
  datei, err := os.Open(dateiName)

  if err != nil {
    return err
  }

  defer datei.Close()

  scanner := bufio.NewScanner(datei)

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

  return scanner.Err()
}

Fazit

Das Lesen von Dateien in Go ist dank des modularen Ansatzes der Sprache und der bereitgestellten Bibliotheken eine intuitive Aufgabe. Unabhängig von der Komplexität deiner Anforderungen bietet Go die Werkzeuge, um effektiv mit Dateien zu arbeiten.

Happy coding!