Dalam Go, apabila menulis data ke fail menggunakan os .Fail, penuding fail dialihkan ke hujung fail selepas menulis. Selepas itu, apabila cuba membaca data daripada penuding fail yang sama, ralat io.EOF (Tamat Fail) serta-merta ditemui kerana penuding fail masih berada di hujung fail.
Untuk berjaya membaca data daripada penuding fail yang sama selepas menulis, anda mesti menetapkan semula penuding fail ke permulaan fail menggunakan kaedah Seek. Begini cara anda boleh mengubah suai kod contoh:
// 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)) }
Dengan menambahkan kaedah Seek, penuding fail ditetapkan semula ke permulaan fail sebelum membaca, membenarkan operasi baca seterusnya mendapatkan semula data bertulis tanpa menyebabkan ralat io.EOF.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan `io.EOF` Apabila Membaca Selepas Menulis ke `os.File` yang Sama dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!