Membaca Baris Terakhir Fail Besar dalam Pergi Setiap 10 Saat
Membaca beberapa baris terakhir fail besar tanpa memuatkannya sepenuhnya ke dalam ingatan boleh mencabar. Artikel ini meneroka cara untuk mencapai perkara ini dalam Go dengan mencari ke hujung fail dan membaca ke hadapan.
Untuk memulakan, anda boleh menentukan saiz fail menggunakan fungsi Stat. Memandangkan fail bernama MYFILE dan Cari kedudukan permulaan, gunakan fungsi ReadAt untuk membaca bilangan bait yang diingini daripada kedudukan itu:
stat, statErr := file.Stat() if statErr != nil { panic(statErr) } start := stat.Size() - 62 _, err = file.ReadAt(buf, start) fmt.Printf("%s\n", buf)
Kaedah ini membolehkan anda membaca bilangan bait yang ditentukan dari hujung daripada fail, mengurangkan keperluan untuk memuatkan keseluruhan fail ke dalam memori.
Untuk mengautomasikan proses ini, anda boleh menggunakan masa. Tandakan saluran untuk membaca yang terakhir baris setiap 10 saat:
c := time.Tick(10 * time.Second) for now := range c { readFile(MYFILE) }
Ringkasnya, dengan menggunakan Stat dan ReadAt, anda boleh membaca baris terakhir fail besar dengan cekap setiap 10 saat tanpa membebankan memori anda.
Atas ialah kandungan terperinci Bagaimana Cara Membaca Baris Terakhir Fail Besar dalam Go Setiap 10 Saat dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!