Rumah > pembangunan bahagian belakang > Golang > Bagaimana Cara Membaca Baris Terakhir Fail Besar dalam Go Setiap 10 Saat dengan Cekap?

Bagaimana Cara Membaca Baris Terakhir Fail Besar dalam Go Setiap 10 Saat dengan Cekap?

Mary-Kate Olsen
Lepaskan: 2024-11-14 16:56:02
asal
582 orang telah melayarinya

How to Efficiently Read the Last Lines of a Large File in Go Every 10 Seconds?

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)
Salin selepas log masuk

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)
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan