Maison > développement back-end > Golang > Comment lire efficacement les dernières lignes d'un fichier volumineux en Go toutes les 10 secondes ?

Comment lire efficacement les dernières lignes d'un fichier volumineux en Go toutes les 10 secondes ?

Mary-Kate Olsen
Libérer: 2024-11-14 16:56:02
original
575 Les gens l'ont consulté

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

Lecture des dernières lignes d'un fichier volumineux dans Go toutes les 10 secondes

Lecture des dernières lignes d'un fichier volumineux sans le charger entièrement dans la mémoire peut être un défi. Cet article explique comment y parvenir dans Go en recherchant jusqu'à la fin du fichier et en lisant vers l'avant.

Pour commencer, vous pouvez déterminer la taille du fichier à l'aide de la fonction Stat. Étant donné un fichier nommé MYFILE et une position de début de recherche, utilisez la fonction ReadAt pour lire le nombre d'octets souhaité à partir de cette position :

stat, statErr := file.Stat()
if statErr != nil {
    panic(statErr)
}
start := stat.Size() - 62
_, err = file.ReadAt(buf, start)
fmt.Printf("%s\n", buf)
Copier après la connexion

Cette méthode vous permet de lire le nombre d'octets spécifié à partir de la fin du fichier, réduisant ainsi le besoin de charger l'intégralité du fichier en mémoire.

Pour automatiser ce processus, vous pouvez utiliser un canal time.Tick pour lire les dernières lignes toutes les 10 secondes :

c := time.Tick(10 * time.Second)
for now := range c {
    readFile(MYFILE)
}
Copier après la connexion

En résumé, en utilisant Stat et ReadAt, vous pouvez lire efficacement les dernières lignes d'un fichier volumineux toutes les 10 secondes sans surcharger votre mémoire.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal