Maison  >  Article  >  développement back-end  >  Comment lire les données d'un fichier temporaire dans Go After Writing ?

Comment lire les données d'un fichier temporaire dans Go After Writing ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-20 04:15:011013parcourir

How to Read Data from a Temporary File in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn