Maison > développement back-end > Golang > Comment lire efficacement une ligne d'un fichier sous forme de chaîne dans Go ?

Comment lire efficacement une ligne d'un fichier sous forme de chaîne dans Go ?

Barbara Streisand
Libérer: 2024-12-08 03:18:11
original
590 Les gens l'ont consulté

How to Efficiently Read a Line from a File as a String in Go?

readline to String in Go

Dans Go, la bibliothèque standard fournit des fonctions brutes de bas niveau pour les opérations readline, qui renvoient des tableaux d'octets. Existe-t-il une méthode plus pratique pour obtenir une chaîne à partir d'une fonction readline ?

Solution idiomatique

L'approche idiomatique pour lire une ligne en chaîne dans Go consiste à utiliser le bufio. Structure du lecteur. La fonction Readln() renvoie une ligne (sans la nouvelle ligne n de fin) du lecteur tampon d'entrée.

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

func readln(r *bufio.Reader) (string, error) {
    var (
        isPrefix bool = true
        err error = nil
        line, ln []byte
    )
    for isPrefix && err == nil {
        line, isPrefix, err = r.ReadLine()
        ln = append(ln, line...)
    }
    return string(ln), err
}

func main() {
    f, err := os.Open(fi)
    if err != nil {
        fmt.Println("error opening file= ", err)
        os.Exit(1)
    }
    r := bufio.NewReader(f)
    s, e := readln(r)
    for e == nil {
        fmt.Println(s)
        s, e = readln(r)
    }
}
Copier après la connexion

Cette fonction lit les lignes d'un fichier, supprime le caractère de nouvelle ligne (n) et imprime chaque ligne dans la console.

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