Sie haben die grundlegenden Fähigkeiten, um Dateiinhalte mithilfe der Go -Programmiersprache bis zum Ende dieses Artikels zu lesen.
Die Datei zum Lesen öffnen
Die erste Methode beim Lesen einer Datei ist das Öffnen. Um eine Datei in Go zu öffnen, können wir die Methoden Open () oder OpenFile () aus dem Betriebssystempaket verwenden.
Der Einfachheit halber halten wir uns an die Open () -Methode.
Der folgende Code zeigt die Syntax zum Öffnen einer Datei mit dem Betriebssystempaket:
Datei, ERR: = OS.Open ("Dateiname")
Zum Beispiel eine Datei mit dem Titel „Hallo zu öffnen.TXT “Im aktuellen Arbeitsverzeichnis können wir dies tun:
Datei, ERR: = OS.Offen ("Hallo.txt")
Es ist auch gut, die Datei nach Abschluss der erforderlichen Vorgänge zu schließen. Wir können die Datei mithilfe der Schließmethode als:
Datei verschieben.Schließen()
Stellen Sie sicher.
Golang -Lesung Datei.
Wir können verschiedene Methoden und Techniken verwenden, um eine Datei in Go zu lesen. Lassen Sie uns einige gemeinsame und effizienteste diskutieren.
Lesen Sie die gesamte Datei.
Die häufigste und vereinfachteste Methode zum Lesen von Dateien besteht darin, die ReadFile -Methode aus dem Ioutil -Paket zu verwenden. Diese Methode liest die gesamte Datei und speichert sie als große Zeichenfolge.
Trotz ihrer simplen Natur ist diese Methode nicht sehr effizient, wenn es um die Arbeit mit großen Dateien geht.
Lassen Sie uns ein Beispiel verwenden, um die Arbeit mit der ReadFile () -Methode zu veranschaulichen.
Erstellen Sie zunächst eine Datei mit dem Titel „Hallo.txt ”in Ihrem aktuellen Arbeitsverzeichnis.
$ touch Hallo.txt
Bearbeiten Sie die Datei als nächstes mit Ihrem Texteditor und fügen Sie Folgendes hinzu:
$ vim Hallo.txt
> Hallo von Hallo.txt
Schließen und speichern Sie die Datei.
Jetzt können wir die ReadFile () -Methode verwenden, um den Inhalt der gesamten Datei als:
Paket Main
importieren (
"fmt"
"io/ioutil"
"Protokoll"
)
func main ()
Daten, ähm: = ioutil.ReadFile ("Hallo.txt")
Wenn er irrt != nil
Protokoll.Tödlich (arr)
fmt.Println (String (Daten))
Das obige Programm wird die Datei lesen und ihre Inhalte in die Konsole drucken. Beachten Sie, dass wir die Daten in eine Zeichenfolge umwandeln müssen, bevor wir sie ausdrucken. Andernfalls erhalten Sie eine Reihe von Charakteren.
Datei nach Teilen lesen
Eine andere Möglichkeit, eine Datei in Go zu lesen, besteht darin, sie in Stücken zu lesen. Dies bedeutet.
Dies kann eine sehr gute Technik sein, wenn sie mit großen Dateien arbeiten.
Zum Beispiel:
Paket Main
importieren (
"Bufio"
"fmt"
"io"
"Protokoll"
"OS"
)
func main ()
Datei, ERR: = OS.Offen ("Hallo.txt")
Wenn er irrt != nil
Protokoll.Tödlich (arr)
Datei verschieben.Schließen()
Leser: = bufio.NewReader (Datei)
Puffer: = make ([] byte, 8)
für
Lesen Sie, erres: = Leser.Lesen (Puffer)
Wenn er irrt != nil
Wenn er irrt != io.Eof
Protokoll.Tödlich (arr)
brechen
fmt.Println (string (buffer [: read]))
Im obigen Beispiel lesen wir die Datei in Brocken von 8 Bytes. Wir lesen die Daten mithilfe der Lesemethode mit A für eine Schleife in den Puffer durch. Schließlich drucken wir den Array -Puffer mit der Println () -Methode aus.
Die daraus resultierenden Datenbrocken sind wie gezeigt:
$ go rennen
Hallo Fr
om die h
Ello.txt
Datei
Dateizeile nach Zeile lesen
Wir können auch die Dateienzeile über das Bufio -Paket per Line lesen. Ein Beispiel ist wie unten gezeigt:
Paket Main
importieren (
"Bufio"
"fmt"
"Protokoll"
"OS"
)
func main ()
Datei, ERR: = OS.Offen ("Hallo.txt")
Wenn er irrt != nil
Protokoll.Tödlich (arr)
Datei verschieben.Schließen()
Scanner: = bufio.Newscanner (Datei)
für Scanner.Scan ()
fmt.Println (Scanner.Text())
Wenn ERR: = Scanner.Irren(); irren != nil
Protokoll.Tödlich (arr)
Der Scanner scannt die Zeile und druckt eine neue Zeile, wenn sie auf das \ n Zeichen trifft.
Lesen Sie das Dateiwort nach Word
Wir können auch die Scanword -Methode aus dem Bufio -Paket verwenden, um das Dateiwort per Word zu lesen. Ein Beispielcode ist wie gezeigt:
Paket Main
importieren (
"Bufio"
"fmt"
"Protokoll"
"OS"
)
func main ()
Datei, ERR: = OS.Offen ("Hallo.txt")
Wenn er irrt != nil
Protokoll.Tödlich (arr)
Datei verschieben.Schließen()
Scanner: = bufio.Newscanner (Datei)
Scanner.Geteilt (bufio.Scanwords)
für Scanner.Scan ()
fmt.Println (Scanner.Text())
Wenn ERR: = Scanner.Irren(); irren != nil
Protokoll.Tödlich (arr)
Im obigen Beispiel scannen wir das Dateiwort mithilfe der vom Bufio -Paket bereitgestellten Scanwords nach Word.
Die resultierende Ausgabe lautet wie:
Hallo
aus
Die
Hallo.txt
Datei
Abschluss
In diesem Leitfaden werden gemeinsame Methoden und Techniken zum Lesen von Dateien in der Go -Programmiersprache erörtert.
Codieren weiter!!