In Golang umfasst das Lesen einer Textdatei das Öffnen mit os.Open() und das anschließende Verwenden des zurückgegebenen *os.File-Objekts um Lesevorgänge durchzuführen. Durch einfaches Öffnen der Datei wird ihr Inhalt jedoch nicht abgerufen.
Um Dateiinhalte zu erhalten, können Sie io.ReadAll verwenden oder manuell in Blöcken einlesen.
Verwendung von io.ReadAll:
b, err := io.ReadAll(file) fmt.Print(b)
Diese Methode liest die gesamte Datei in den Speicher, was geeignet ist für kleinere Dateien.
Manuelles Lesen in Blöcken:
buf := make([]byte, 32*1024) for { n, err := file.Read(buf) if n > 0 { fmt.Print(buf[:n]) } if err == io.EOF { break } if err != nil { log.Printf("read %d bytes: %v", n, err) break } }
Bei diesem Ansatz definieren Sie einen Puffer und lesen Dateiinhalte in Blöcken, was effizienter sein kann große Dateien.
Das bufio-Paket bietet eine praktische Möglichkeit, Textdateien zu lesen. Es bietet den bufio.Scanner-Typ, der die Tokenisierung von Dateiinhalten vereinfacht:
scanner := bufio.NewScanner(file) for scanner.Scan() { fmt.Println(scanner.Text()) }
Die Scan()-Methode rückt das Scanner-Token basierend auf einem Trennzeichen (standardmäßig Zeilenumbrüche) vor.
Das obige ist der detaillierte Inhalt vonWie lese ich eine Textdatei in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!