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