0Pricing
Go Academy · Lektion

Dateien mit os und bufio lesen

Dateien öffnen, Zeilen lesen und sicher schließen

Dateien mit os und bufio lesen ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

os.ReadFile

os.ReadFile (Go 1.16+) liest den gesamten Inhalt einer Datei in einem Aufruf in eine Byte-Slice ein. Das ist für kleine Dateien einfach und idiomatisch.

data, err := os.ReadFile("config.json")
if err != nil { log.Fatal(err) }
fmt.Println(string(data))

os.Open und manuelles Schließen

Für mehr Kontrolle öffnen Sie eine Datei mit os.Open (schreibgeschützt) und schließen Sie sie mit defer:

f, err := os.Open("data.txt")
if err != nil { return err }
defer f.Close()

In einen Puffer lesen

Lesen Sie mit f.Read(buf) einen Byte-Block ein. Die Funktion gibt die Anzahl der gelesenen Bytes und am Dateiende io.EOF zurück.

buf := make([]byte, 1024)
n, err := f.Read(buf)
if err != nil && err != io.EOF { return err }
fmt.Println(string(buf[:n]))

bufio.NewReader

Verpacken Sie eine Datei in einen bufio.Reader, um Lesevorgänge zu puffern und dadurch Systemaufrufe zu reduzieren. Zu den Methoden gehören ReadString, ReadLine und ReadByte.

reader := bufio.NewReader(f)
line, err := reader.ReadString('\n')

Mit bufio.Scanner zeilenweise lesen

bufio.NewScanner ist die idiomatische Methode, um eine Textdatei zeilenweise zu lesen. Die standardmäßige Trennfunktion ist ScanLines.

scanner := bufio.NewScanner(f)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil { return err }

Benutzerdefinierter Scanner-Puffer

Der Standardpuffer des Scanners ist 64 KiB groß. Erhöhen Sie bei Dateien mit sehr langen Zeilen die Puffergröße mit scanner.Buffer.

buf := make([]byte, 1024*1024)
scanner.Buffer(buf, len(buf))

io.ReadAll

io.ReadAll liest aus jedem io.Reader bis zu EOF und gibt die Bytes zurück. Das ist nützlich, um aus Netzwerkverbindungen, Antwort-Bodys oder in Reader verpackten Dateien zu lesen.

data, err := io.ReadAll(f)

Wörter und Bytes scannen

Ersetzen Sie die Trennfunktion des Scanners, um Wörter (bufio.ScanWords) oder einzelne Bytes (bufio.ScanBytes) zu scannen.

scanner.Split(bufio.ScanWords)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}

Strukturierten Text lesen

Verwenden Sie nach dem Lesen der Zeilen strings.Fields oder strings.Split, um Spalten zu parsen:

for scanner.Scan() {
    fields := strings.Fields(scanner.Text())
    // fields[0], fields[1], ...
}

Fehler beim Lesen von Dateien

Prüfen Sie nach der Scan-Schleife immer Err() des Scanners – die Funktion gibt den ersten Fehler zurück, der nicht EOF ist. Eine Schleife, die normal endet, ohne eine Zeile zu scannen, kann trotzdem einen Fehler festgestellt haben.

Benanntes stdin lesen

Verwenden Sie os.Stdin überall dort, wo ein io.Reader akzeptiert wird. Dadurch funktionieren CLI-Tools sowohl mit Dateiargumenten als auch mit weitergeleiteten Eingaben.

scanner := bufio.NewScanner(os.Stdin)

Kurzer Test

Welcher bufio-Typ ist in Go die idiomatische Methode, um eine Textdatei zeilenweise zu lesen?

Zusammenfassung: Dateien lesen

Wichtige Punkte:

  • os.ReadFile: gesamte kleine Datei in einem Aufruf lesen
  • bufio.Scanner: zeilenweise lesen; Err() nach der Schleife prüfen
  • bufio.Reader: gepufferte Lesevorgänge, die Systemaufrufe reduzieren
  • io.ReadAll: jeden io.Reader vollständig lesen

Häufig gestellte Fragen

Ist die Lektion „Dateien mit os und bufio lesen“ kostenlos?

Ja — der vollständige Text von „Dateien mit os und bufio lesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Dateien mit os und bufio lesen“?

Dateien öffnen, Zeilen lesen und sicher schließen Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Go Academy zu starten?

Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Dateien mit os und bufio lesen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?

Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Dateien mit os und bufio lesen
  2. Dateien und temporäre Dateien schreiben
  3. JSON-Kodierung und -Dekodierung
  4. JSON und CSV streamen
← Zurück zu Go Academy