Heim > Backend-Entwicklung > Golang > Wie liest man in Go effizient eine einzelne Zeile aus einer Textdatei in einen String ein?

Wie liest man in Go effizient eine einzelne Zeile aus einer Textdatei in einen String ein?

DDD
Freigeben: 2024-12-20 08:10:14
Original
634 Leute haben es durchsucht

How to Efficiently Read a Single Line from a Text File into a String in Go?

Lesen einer Zeichenfolge aus einer Textdatei in Go

Bei der Arbeit mit Textdateien in Go kann es wünschenswert sein, eine Zeile von zu lesen Text in eine Zeichenfolge. Während die Standardbibliothek Low-Level-Funktionen bereitstellt, die Byte-Arrays zurückgeben, ist es bequemer, spezielle Funktionen zu verwenden, die diese Aufgabe direkt erledigen.

Lösung

Das Folgende Der Code zeigt, wie eine einzelne Zeile aus einer Textdatei in eine Zeichenfolge eingelesen wird:

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

// ReadLine reads a single line from a file.
func ReadLine(r *bufio.Reader) (string, error) {
    var (
        isPrefix bool = true
        err       error
        line, ln  []byte
    )

    for isPrefix && err == nil {
        line, isPrefix, err = r.ReadLine()
        ln = append(ln, line...)
    }

    return string(ln), err
}

func main() {
    fi := `<path-to-your-file>`
    f, err := os.Open(fi)
    if err != nil {
        fmt.Println("error opening file= ", err)
        os.Exit(1)
    }
    defer f.Close()

    r := bufio.NewReader(f)
    s, e := ReadLine(r)
    for e == nil {
        fmt.Println(s)
        s, e = ReadLine(r)
    }
}
Nach dem Login kopieren

Dieser Code öffnet die angegebene Datei, initialisiert einen gepufferten Reader und ruft auf die ReadLine-Funktion, um jede Zeile aus der Datei zu lesen. Die resultierende Zeichenfolge wird auf stdout ausgegeben.

Verwendung

Rufen Sie die ReadLine-Funktion auf einem Pufferleser auf, um den Inhalt einer einzelnen Zeile als Zeichenfolge abzurufen. Die ReadLine-Funktion übernimmt das Lesen mehrerer Zeilen, wenn in der Eingabe keine Zeilenumbruchzeichen vorhanden sind.

Dieser Ansatz macht die manuelle Handhabung von Byte-Arrays und deren Konvertierung in Zeichenfolgen überflüssig und bietet eine einfache und effiziente Möglichkeit, zeilenorientiert zu lesen Textdateien.

Das obige ist der detaillierte Inhalt vonWie liest man in Go effizient eine einzelne Zeile aus einer Textdatei in einen String ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage