"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment éviter `io.eof` lors de la lecture après avoir écrit dans le même` os.file »dans Go?

Comment éviter `io.eof` lors de la lecture après avoir écrit dans le même` os.file »dans Go?

Publié le 2025-02-06
Parcourir:485

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

Lecture et l'écriture au même * os.file dans Go

Comprendre le problème

dans Go, lors de l'écriture de données dans un fichier à l'aide d'un système .File, le pointeur de fichier est déplacé vers la fin du fichier après avoir écrit. Par la suite, lorsque vous essayez de lire les données du même pointeur de fichier, une erreur immédiate io.eof (fin du fichier) est rencontrée car le pointeur de fichier est toujours à la fin du fichier.

résolution

Pour lire avec succès les données du même pointeur de fichier après l'écriture, vous devez réinitialiser le pointeur de fichier vers le début du fichier à l'aide de la méthode de recherche. Voici comment vous pouvez modifier l'exemple de code:

// 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  

En ajoutant la méthode de recherche, le pointeur de fichier est réinitialisé au début du fichier avant de lire, permettant aux opérations de lecture suivantes de récupérer les données écrites sans provoquer une erreur io.eof.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3