Maison >développement back-end >Golang >Lisez le contenu du fichier à l'aide de la fonction bufio.NewReader dans la documentation du langage Go

Lisez le contenu du fichier à l'aide de la fonction bufio.NewReader dans la documentation du langage Go

WBOY
WBOYoriginal
2023-11-03 20:07:461013parcourir

Lisez le contenu du fichier à laide de la fonction bufio.NewReader dans la documentation du langage Go

Utilisez la fonction NewReader du package bufio du langage Go pour lire facilement le contenu du fichier. Voyons ensuite comment utiliser cette fonction pour lire des fichiers et effectuer certaines opérations de base.

Tout d'abord, nous devons importer le package bufio :

import (
    "bufio"
    "fmt"
    "os"
)

La fonction NewReader crée un lecteur tamponné de type bufio.Reader, qui lira le contenu du fichier ligne par ligne et le mettra en cache en mémoire pour une lecture ultérieure.

On peut lire le fichier et l'imprimer ligne par ligne grâce au code suivant :

file, err := os.Open("test.txt")
if err != nil {
    panic(err)
}
defer file.Close()

reader := bufio.NewReader(file)
for {
    line, err := reader.ReadString('
')
    if err == io.EOF {
        break
    }
    if err != nil {
        panic(err)
    }
    fmt.Print(line)
}

Dans le code, on ouvre d'abord un fichier nommé test.txt, et si une erreur survient, on quitte directement le programme. Ensuite, créez un lecteur tamponné via la fonction NewReader et associez-le au fichier.

Ensuite, dans une boucle infinie, on peut utiliser la fonction readString pour lire le contenu du fichier ligne par ligne et imprimer chaque ligne à l'écran. Si le caractère de fin de fichier EOF est rencontré, sortez de la boucle. Sinon, si une autre erreur est rencontrée, une exception est levée et le programme se termine.

De plus, nous pouvons également utiliser la fonction ReadBytes pour lire les octets du fichier et utiliser le package strings pour opérer sur ces octets. Le code suivant montre comment convertir le contenu lu en chaîne et y trouver la sous-chaîne :

file, err := os.Open("test.txt")
if err != nil {
    panic(err)
}
defer file.Close()

reader := bufio.NewReader(file)

content, err := ioutil.ReadAll(reader)
if err != nil {
    panic(err)
}

str := string(content)
if strings.Contains(str, "Hello World") {
    fmt.Println("Found!")
}

Dans ce code, nous lisons d'abord le contenu du fichier entier via la fonction ReadAll et l'enregistrons sous forme de tranche d'octets. Nous convertissons ensuite la tranche d'octets en chaîne et utilisons la fonction Contains pour trouver la sous-chaîne "Hello World". S'il est trouvé, affichez « Trouvé ! », sinon ne faites rien.

En utilisant le package bufio et les fonctions correspondantes, nous pouvons facilement lire le contenu du fichier et y opérer. De plus, cette approche nous aide également à gérer des fichiers volumineux car elle ne lit pas l'intégralité du fichier en mémoire en même temps.

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!

Déclaration:
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