Eine Anleitung zum Arbeiten mit Textdateien in Go

Eine Anleitung zum Arbeiten mit Textdateien in Go

Als Programmiersprache verfügt Go über eine Vielzahl integrierter Funktionen, einschließlich der Möglichkeit, Dateien wie Textdateien (.txt) zu erstellen, zu lesen und zu schreiben.





Dateien sind wichtige Bestandteile unseres täglichen Lebens in der modernen Welt. Textdateien sind nützlich, um strukturierte, für Menschen lesbare Daten ohne die Verwendung externer Software oder Datenbanken zu speichern.





wie man adb und fastboot verwendet
MAKEUSEOF VIDEO DES TAGES

Wenn Sie sich fragen, wie Sie anfangen könnten, Textdateien in Go zu manipulieren, sind Sie in diesem Artikel genau richtig.





Das bufio-Paket in Go

Das bufio Das Paket, das Teil der Standardbibliothek von Go ist, wird für gepufferte Eingabe- und Ausgabeoperationen verwendet, daher der Name. Das bufio Paket baut auf dem auf io.Reader und io.Writer Schnittstellen, die bei der Implementierung der meisten Standardpakete von Go ausgiebig verwendet werden.

Das bufio Das Paket geht noch einen Schritt weiter, indem es Pufferung implementiert, was es für E/A-Operationen mit Textdaten nützlich macht.



Um die zu verwenden bufio Paket in Ihrem Programm, sollten Sie es zusammen mit anderen Paketen importieren.

Kannst du deinen Laptop als Monitor verwenden?
import ( 
"fmt"
"bufio"
)

Sie haben wahrscheinlich gehört, als Sie habe mit Go angefangen dass es mit allem ausgestattet ist, was man als Programmierer braucht. Für die direkte Kommunikation mit Ihrem Betriebssystem gibt es ein Paket namens Sie die plattformunabhängige Funktionen bereitstellt.





Das Sie und bufio Pakete machen die Bearbeitung von Textdateien unglaublich einfach.

Obwohl die überwiegende Mehrheit der Sie Die Funktionen des Pakets sind Unix-ähnlich, sie verwenden alle den Go-Stil der Fehlerbehandlung, was es einfach macht, Fehlermeldungen zu lesen und Code zu debuggen.





Wie bearbeiten Sie also Dateien mit Text in Go?

So lesen Sie Daten aus einer Textdatei

Um Daten aus Textdateien zu lesen, müssen Sie die aufrufen Sie Pakete Offen() Funktion, die den Namen der zu lesenden Datei als Parameter akzeptiert. Eine andere Methode, um die Datei abzurufen, ist die Verwendung der Datei öffnen() Funktion.

Der Hauptunterschied zw Offen() und Datei öffnen() liegt in ihrer Umsetzung. Offen() öffnet eine Datei im schreibgeschützten Modus (mit der NUR O_RD Flagge), während Datei öffnen() bietet mehr Flexibilität, indem drei Parameter akzeptiert werden, nämlich:

So verwenden Sie den Wii-U-Pro-Controller auf dem PC
  • Dateiname
  • Dateiöffnungsmodus: Die gültigen Dateiöffnungsmodi sind in der folgenden Tabelle aufgeführt.
    Flagge Bedeutung
    NUR O_RD Öffnet die Datei im schreibgeschützten Modus
    O_FALSCH Öffnet die Datei im schreibgeschützten Modus
    O_RDWR Öffnet die Datei im Lese-/Schreibmodus
    O_APPEND Fügt beim Schreiben Daten an die Datei an
    O_ERSTELLEN Erstellt eine neue Datei, falls keine vorhanden ist
    O_EXCL Wird mit O_CREATE verwendet, um anzugeben, dass die Datei nur erstellt werden soll, wenn sie nicht existiert
    O_SYNC Öffnet Datei für synchrone I/O
    O_TRUNC Schneiden Sie die Datei nach Möglichkeit beim Öffnen ab
  • Dateiberechtigungen: Gleich wie die Dateiberechtigungsbits in Linux Wird zum Festlegen von Dateizugriffsregeln verwendet, z. B. 0777, um Lese-, Schreib- und Ausführungsberechtigungen für alle Benutzertypen zu erteilen.

Der folgende Code zeigt, wie Daten aus einer Textdatei in Go gelesen werden os.Öffnen() , und Scan() was in diesem Fall in a läuft Gehen Sie für Schleife .

package main 
import (
"bufio"
"fmt"
"log"
"os"
)
/**
CONTENT OF THE "testfile.txt" file.
lorem ipsum dolor sit amet
LOREM IPSUM DOLOR SIT AMET
Lorem ipsum dolor sit amet
Lorem Ipsum Dolor Sit Amet
lOREM iPSUM dOLOR sIT aMET
LoReM IpSuM DoLoR SiT AmEt
*/
func main() {
file, err := os.Open("testfile.txt")
// another method using os.OpenFile()
// file, err = os.OpenFile("testfile.txt", os.O_RDONLY, 0644)
if err != nil {
log.Fatal(err)
}
defer file.()
fmt.Println("File opened successfully. Now reading file contents line by line:")
// create scanner from the file to read text from
scanner := bufio.NewScanner(file)
// scan or read the bytes of text line by line
for scanner.Scan() {
fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}

Wenn Sie den obigen Code mit ausführen gehen Sie Dateiname.go ausführen , erzeugt es die unten gezeigte Ausgabe:

  Ausgabe des Programms zum Lesen von Text aus einer Datei