0Pricing
Go Academy · Leçon

Lire des fichiers avec os et bufio

Ouvrir, lire des lignes et fermer des fichiers en toute sécurité

Lire des fichiers avec os et bufio est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.

os.ReadFile

os.ReadFile (Go 1.16+) lit un fichier entier dans une tranche d’octets en un seul appel. C’est une solution simple et idiomatique pour les petits fichiers.

data, err := os.ReadFile("config.json")
if err != nil { log.Fatal(err) }
fmt.Println(string(data))

os.Open et fermeture manuelle

Pour mieux contrôler l’opération, ouvrez un fichier avec os.Open (en lecture seule) et fermez-le avec defer :

f, err := os.Open("data.txt")
if err != nil { return err }
defer f.Close()

Lire dans un tampon

Lisez un bloc d’octets avec f.Read(buf). La fonction renvoie le nombre d’octets lus et io.EOF lorsque la fin du fichier est atteinte.

buf := make([]byte, 1024)
n, err := f.Read(buf)
if err != nil && err != io.EOF { return err }
fmt.Println(string(buf[:n]))

bufio.NewReader

Encapsulez un fichier dans bufio.Reader pour mettre les lectures en tampon et réduire les appels système. Les méthodes incluent ReadString, ReadLine et ReadByte.

reader := bufio.NewReader(f)
line, err := reader.ReadString('\n')

Lire ligne par ligne avec bufio.Scanner

bufio.NewScanner est la manière idiomatique de lire un fichier texte ligne par ligne. La fonction de séparation par défaut est ScanLines.

scanner := bufio.NewScanner(f)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}
if err := scanner.Err(); err != nil { return err }

Tampon personnalisé du scanner

Le tampon par défaut du scanner est de 64 Kio. Pour les fichiers contenant de très longues lignes, augmentez la taille du tampon avec scanner.Buffer.

buf := make([]byte, 1024*1024)
scanner.Buffer(buf, len(buf))

io.ReadAll

io.ReadAll lit depuis n’importe quel io.Reader jusqu’à EOF et renvoie les octets. C’est utile pour lire des connexions réseau, des corps de réponse ou des fichiers encapsulés dans des lecteurs.

data, err := io.ReadAll(f)

Analyser des mots et des octets

Remplacez la fonction de séparation du scanner pour analyser des mots (bufio.ScanWords) ou des octets individuels (bufio.ScanBytes).

scanner.Split(bufio.ScanWords)
for scanner.Scan() {
    fmt.Println(scanner.Text())
}

Lire du texte structuré

Après avoir lu les lignes, utilisez strings.Fields ou strings.Split pour analyser les colonnes :

for scanner.Scan() {
    fields := strings.Fields(scanner.Text())
    // fields[0], fields[1], ...
}

Erreurs de lecture des fichiers

Vérifiez toujours Err() après la boucle d’analyse : la fonction renvoie la première erreur autre que EOF. Une boucle qui se termine normalement sans analyser de ligne peut tout de même avoir rencontré une erreur.

Lire stdin nommé

Utilisez os.Stdin partout où un io.Reader est accepté. Les outils CLI peuvent ainsi fonctionner avec des arguments de fichier comme avec une entrée redirigée.

scanner := bufio.NewScanner(os.Stdin)

Vérification rapide

Quel type de bufio est la manière idiomatique de lire un fichier texte ligne par ligne en Go ?

Récapitulatif : lire des fichiers

Points essentiels :

  • os.ReadFile : lire un petit fichier entier en un seul appel
  • bufio.Scanner : lecture ligne par ligne ; vérifiez Err() après la boucle
  • bufio.Reader : lectures mises en tampon pour réduire les appels système
  • io.ReadAll : lire entièrement n’importe quel io.Reader

Questions Fréquemment Posées

La leçon « Lire des fichiers avec os et bufio » est-elle gratuite ?

Oui — le texte complet de « Lire des fichiers avec os et bufio » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Lire des fichiers avec os et bufio » ?

Ouvrir, lire des lignes et fermer des fichiers en toute sécurité Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Go Academy ?

Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Lire des fichiers avec os et bufio » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?

Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Lire des fichiers avec os et bufio
  2. Écrire des fichiers et des fichiers temporaires
  3. Encoder et décoder du JSON
  4. JSON et CSV en flux
← Retour à Go Academy