Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Membaca Data daripada Fail Sementara dalam Go After Writing?

Bagaimana untuk Membaca Data daripada Fail Sementara dalam Go After Writing?

Patricia Arquette
Patricia Arquetteasal
2024-11-20 04:15:011064semak imbas

How to Read Data from a Temporary File in Go After Writing?

Membaca Data daripada Fail Sementara dalam Go After Writing

In Go, menggunakan ioutil.TempFile untuk mencipta fail sementara membenarkan penulisan kepada fail tersebut. Walau bagaimanapun, membaca data daripada fail kemudiannya boleh menghadapi cabaran, kerana penuding fail dialihkan ke penghujung fail semasa menulis.

Untuk menangani perkara ini, penyelesaiannya melibatkan penetapan semula penuding fail ke permulaan fail selepas menulis, membolehkan pembacaan data. Ini boleh dicapai menggunakan kaedah Seek jenis *os.File. Selain itu, adalah disyorkan untuk menutup fail menggunakan penangguhan untuk memastikan pelepasan sumber yang betul.

Berikut ialah contoh yang menunjukkan pelaksanaan yang betul:

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)
    }
}

Dengan memasukkan pengubahsuaian ini, program ini boleh membaca data daripada fail sementara dengan pasti selepas menulis kepadanya.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Data daripada Fail Sementara dalam Go After Writing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn