Maison >développement back-end >Golang >Comment éviter « io.EOF » lors de la lecture après avoir écrit dans le même « os.File » dans Go ?
Dans Go, lors de l'écriture de données dans un fichier à l'aide d'OS .Fichier, le pointeur de fichier est déplacé à la fin du fichier après l'écriture. Par la suite, lorsque vous tentez de lire des données à partir du même pointeur de fichier, une erreur immédiate io.EOF (End of File) est rencontrée car le pointeur de fichier est toujours à la fin du fichier.
Pour réussir à lire les données du même pointeur de fichier après l'écriture, vous devez réinitialiser le pointeur de fichier au début du fichier à l'aide de la méthode Seek. Voici comment 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 < 10; i++ { str, _, err := r.ReadLine() if err != nil { if err == io.EOF { fmt.Println("Done") return } fmt.Println("Error", err) } fmt.Println("Read", string(str)) }
En ajoutant la méthode Seek, le pointeur de fichier est réinitialisé au début du fichier avant la lecture, permettant aux opérations de lecture ultérieures de récupérer les données écrites sans provoquer une erreur io.EOF.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!