Maison >développement back-end >Golang >Comment puis-je lire efficacement un fichier entier dans une chaîne avec Go ?

Comment puis-je lire efficacement un fichier entier dans une chaîne avec Go ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-02 12:53:40612parcourir

How Can I Efficiently Read an Entire File into a String in Go?

Lecture de fichiers entiers dans des chaînes dans Go

Lors de la manipulation de nombreux petits fichiers, la lecture de chaque ligne individuellement peut s'avérer inefficace. Go fournit une fonction pratique pour faciliter la lecture d'un fichier entier dans une seule variable de chaîne.

Solution utilisant le package ioutil obsolète :

Le package ioutil obsolète contient une fonction appelée ReadFile qui permet la lecture d'un fichier dans une tranche d'octets :

func ReadFile(filename string) ([]byte, error)

Notez que cette fonction renvoie une tranche d'octets, qui doit être convertie en chaîne si vous le souhaitez :

s := string(buf)

Solution utilisant le package io (préféré pour le nouveau code) :

Le package io offre une alternative moderne et préférée à ioutil.ReadFile :

func ReadAll(r io.Reader) ([]byte, error)

Cette fonction nécessite un io.Reader en entrée, auquel un fichier peut être facilement adapté en utilisant os.Open :

file, err := os.Open(filename)
if err != nil {
    // Handle error
}
data, err := io.ReadAll(file)
if err != nil {
    // Handle error
}

La tranche d'octets résultante peut à nouveau être convertie en chaîne si nécessaire.

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