Lire des fichiers et stdin
Acheminez l’entrée vers votre programme.
Lire des fichiers et stdin est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 2 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 Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.
Les outils consomment des entrées
Un CLI utile lit généralement quelque chose : un fichier dont vous indiquez le nom ou du texte redirigé vers le programme. Zig vous fournit des moyens clairs et explicites de faire les deux. 📥
Ouvrez un fichier par son chemin
Utilisez std.fs.cwd pour obtenir le répertoire courant, puis openFile pour ouvrir en lecture un chemin relatif à celui-ci.
const file = try std.fs.cwd().openFile(path, .{});Fermez toujours ce que vous ouvrez
Un fichier ouvert est une ressource dont vous êtes responsable. Associez l'ouverture à un defer file.close() afin qu'il soit libéré quelle que soit la façon dont la fonction se termine.
defer file.close();Lisez le fichier entier
Pour tout charger en une seule fois, appelez readToEndAlloc avec un allocateur et une limite de taille. La fonction renvoie les octets sous forme de tranche dont vous êtes propriétaire.
const data = try file.readToEndAlloc(a, 1024 * 1024);Libérez les octets plus tard
Cette tranche renvoyée se trouve sur le tas, vous en êtes donc responsable. Ajoutez defer a.free(data) pour libérer le tampon lorsque vous n'en avez plus besoin.
defer a.free(data);La limite de taille est une protection
L'argument du nombre maximal d'octets vous protège contre un fichier volumineux qui consommerait toute la mémoire. Choisissez une limite adaptée aux entrées réalistes de votre outil.
Récupérez l'entrée standard
Pour lire du texte redirigé, utilisez std.io.getStdIn. Cette fonction renvoie un fichier comme celui que vous avez ouvert vous-même, les mêmes appels de lecture s'appliquent donc.
const stdin = std.io.getStdIn();Lisez tout stdin
Demandez à stdin un lecteur et appelez readAllAlloc. Cette fonction rassemble tout ce qui est redirigé jusqu'à la fin de l'entrée dans une seule tranche dont vous êtes propriétaire.
const input = try stdin.reader().readAllAlloc(a, 1024 * 1024);Lisez ligne par ligne
Pour le traitement en flux, readUntilDelimiterOrEof d'un lecteur extrait une ligne à la fois dans un tampon et renvoie null lorsque l'entrée se termine.
const line = try r.readUntilDelimiterOrEof(&buf, '\n');Mettez en tampon pour accélérer
Chaque lecture brute peut être un appel système. Enveloppez un lecteur dans std.io.bufferedReader afin de regrouper de nombreuses petites lectures en un nombre réduit d'opérations plus rapides.
var br = std.io.bufferedReader(file.reader());Fichier ou tube, le code reste le même
Comme un fichier et stdin exposent tous deux un reader, votre logique d'analyse ne dépend pas de celui qui lui a été fourni. C'est une conception propre et réutilisable. ✨
Vérification rapide
Rappelez-vous comment transformer les octets d'un fichier en quelque chose d'utilisable.
Récapitulatif
Vous avez ouvert des fichiers avec openFile, les avez lus entièrement ou ligne par ligne, récupéré du texte depuis stdin et libéré chaque tampon. Les entrées sont maîtrisées. 🎯
Questions Fréquemment Posées
La leçon « Lire des fichiers et stdin » est-elle gratuite ?
Oui — le texte complet de « Lire des fichiers et stdin » 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 Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Lire des fichiers et stdin » ?
Acheminez l’entrée vers votre programme. Tu pratiques Zig 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 Zig Academy ?
Aucune expérience préalable n'est requise. Zig 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 2 sur 4.
Combien de temps prend la leçon « Lire des fichiers et stdin » ?
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 Zig Academy ?
Oui. Chaque leçon Zig 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
- Lire les arguments de la ligne de commande
- Lire des fichiers et stdin
- Écrire la sortie et les codes de sortie
- Empaqueter et publier le binaire