Maison > Article > développement back-end > Comment lire les données d'un fichier temporaire dans Go After Writing ?
Lecture des données d'un fichier temporaire dans Go après l'écriture
Dans Go, l'utilisation d'ioutil.TempFile pour créer un fichier temporaire permet d'écrire dans le fichier. Cependant, la lecture ultérieure des données du fichier peut rencontrer des difficultés, car le pointeur de fichier est déplacé vers la fin du fichier lors de l'écriture.
Pour résoudre ce problème, la solution consiste à réinitialiser le pointeur de fichier au début du fichier. après l'écriture, permettant la lecture des données. Ceci peut être réalisé en utilisant la méthode Seek du type *os.File. De plus, il est recommandé de fermer le fichier en utilisant defer pour garantir une libération correcte des ressources.
Voici un exemple qui démontre la bonne implémentation :
import ( "bufio" "fmt" "io/ioutil" "log" "os" "path/filepath" ) func main() { tmpFile, err := ioutil.TempFile("", fmt.Sprintf("%s-", filepath.Base(os.Args[0]))) if err != nil { log.Fatal("Could not create temporary file", err) } defer tmpFile.Close() fmt.Println("Created temp file:", tmpFile.Name()) fmt.Println("Writing some data to the temp file") if _, err := tmpFile.WriteString("test data"); err != nil { log.Fatal("Unable to write to temporary file", err) } else { fmt.Println("Data should have been written") } fmt.Println("Trying to read the temp file now") // Seek the pointer to the beginning tmpFile.Seek(0, 0) s := bufio.NewScanner(tmpFile) for s.Scan() { fmt.Println(s.Text()) } if err := s.Err(); err != nil { log.Fatal("error reading temp file", err) } }
En incorporant ces modifications, le programme peut lire de manière fiable les données du fichier temporaire après y avoir écrit.
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!