"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je lire efficacement les fichiers binaires en Go?

Comment puis-je lire efficacement les fichiers binaires en Go?

Publié le 2025-03-24
Parcourir:495

How Can I Efficiently Read Binary Files in Go?

Lire des fichiers binaires dans Go: un guide complet

Si vous êtes nouveau pour aller et que vous devez lire les fichiers binaires, ce guide vous guidera à travers les étapes pour accomplir cette tâche efficacement. Par exemple:

f, err: = os.open ("myfile") Si err! = Nil { panique (euh) }

N'oubliez pas de fermer le fichier lorsque vous avez fini de lire en appelant la méthode proche sur l'objet * os.file.

f, err := os.Open("myfile")
if err != nil {
   panic(err)
}

Il existe plusieurs façons de lire les bocytes dans un tampon dans Go.

Interface:

Le type OS.File implémente l'interface io.reader, afin que vous puissiez lire les octets directement dans un tampon en utilisant sa méthode de lecture. Par exemple: bytes: = make ([] octet, 1024) n, err: = f.read (octets) Si err! = Nil { panique (euh) }

Utilisation d'un lecteur tamponné:
bytes := make([]byte, 1024)
n, err := f.Read(bytes)
if err != nil {
   panic(err)
}

Vous pouvez envelopper l'objet os.file dans un lecteur tamponné ( bufio.reader) pour une performance améliorée sur les fichiers gros. Par exemple:

buff: = bufio.newreader (f) _, err: = buff.read (octets) Si err! = Nil { panique (euh) } Reading Data Data Using Encoding / Binary

buff := bufio.NewReader(f)
_, err := buff.Read(bytes)
if err != nil {
   panic(err)
}

Type Data struct { Value1 int32 Value2 Float64 Valeur3 chaîne } Données: = données {} err: = binary.read (f, binary.littleendian, & data) Si err! = Nil { panique (euh) }

Utilisation de io / ioutil pour la commodité

type Data struct {
    Value1 int32
    Value2 float64
    Value3 string
}

data := Data{}
err := binary.Read(f, binary.LittleEndian, &data)
if err != nil {
   panic(err)
}

octets, err: = ioutil.readfile ("myfile") Si err! = Nil { panique (euh) }

Conclusion

bytes, err := ioutil.ReadFile("myfile")
if err != nil {
   panic(err)
}
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3