„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie vermeiden Sie "io.eof" beim Lesen nach dem Schreiben in das gleiche "os.file" in Go?

Wie vermeiden Sie "io.eof" beim Lesen nach dem Schreiben in das gleiche "os.file" in Go?

Gepostet am 2025-02-06
Durchsuche:144

How to Avoid `io.EOF` When Reading After Writing to the Same `os.File` in Go?

Lesen und Schreiben in das gleiche *os.file in Go

das Problem verstehen

in Go, wenn Daten in eine Datei mit OS geschrieben werden .File, der Dateizeiger wird nach dem Schreiben an das Ende der Datei verschoben. Anschließend wird beim Versuch, Daten aus demselben Dateizeiger zu lesen, ein sofortiger IO.eof -Fehler (Ende der Datei-) Fehler, weil sich der Dateizeiger noch am Ende der Datei befindet.

Resolution

Um Daten nach dem Schreiben erfolgreich aus demselben Dateizeiger zu lesen, müssen Sie den Dateizeiger mithilfe der Suchmethode auf den Beginn der Datei zurücksetzen. So können Sie den Beispielcode ändern:

// Seek to the beginning of the file before reading
_, err := f.Seek(0, 0)
if err != nil {
    fmt.Println("Error", err)
}

// Read 10 times
r := bufio.NewReader(f)
for i := 0; i  

Durch Hinzufügen der Suchmethode wird der Dateizeiger vor dem Lesen auf den Beginn der Datei zurückgesetzt, sodass die nachfolgenden Lesevorgänge die schriftlichen Daten abrufen können, ohne einen IO.eof -Fehler zu verursachen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3