Heim >Backend-Entwicklung >Golang >Wie lese ich Textdateien in Golang?

Wie lese ich Textdateien in Golang?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 07:10:13722Durchsuche

How do I read text files in Golang?

Textdateien in Golang lesen

Bei der Arbeit mit Textdateien ist es notwendig, deren Inhalte in Variablen einzulesen. Golang bietet mehrere Möglichkeiten, dies zu erreichen, wie unten gezeigt:

Direkte Ausgabe

Um den gesamten Inhalt der Textdatei zu drucken, verwenden Sie fmt.Print(file). Dadurch wird jedoch der Zeigerwert des Dateideskriptors ausgegeben, nicht der Inhalt der Datei.

ioutil.ReadAll

Diese Funktion liest alle Dateiinhalte als Bytes in den Speicher:

b, err := io.ReadAll(file)
fmt.Print(b)

io.Reader.Read

Das Lesen in kleineren Blöcken kann bei großen Blöcken speichereffizienter sein Dateien:

buf := make([]byte, 32*1024) // Define buffer size

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
    }
}

bufio.Scanner

Die Verwendung eines Scanners tokenisiert die Datei anhand von Trennzeichen, wobei der Standardwert Zeilenumbrüche sind:

scanner := bufio.NewScanner(file)

for scanner.Scan() {
    fmt.Println(scanner.Text()) // Token as unicode characters
    fmt.Println(scanner.Bytes()) // Token as bytes
}

Weitere Informationen und Beispiele Umfassende Techniken zur Dateiverwaltung finden Sie im Golang-Datei-Cheatsheet.

Das obige ist der detaillierte Inhalt vonWie lese ich Textdateien in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:ENUMs in Go beherrschenNächster Artikel:ENUMs in Go beherrschen