learnyounode
Version:
Learn You The Node.js For Much Win! An intro to Node.js via a set of self-guided workshops.
52 lines (38 loc) • 2.29 kB
Markdown
Écrivez un programme qui utilise une opération **synchrone** sur le système
de fichiers pour lire un fichier et afficher son nombre de fins de ligne sur
la console (stdout), un peu comme si vous faisiez `cat file | wc -l`. (`wc`
comptera le nombre de lignes, pas les fins de lignes, donc votre résultat
devrait être supérieur de 1 (un) au sien.)
Le chemin complet du fichier à lire vous sera fourni comme premier argument
de la ligne de commande. Il est inutile de faire votre propre fichier de test.
----------------------------------------------------------------------
## CONSEILS
Tout ce qui touche au système de fichiers se trouve dans le module noyau `fs`
(un module noyau est fourni de base par Node). Pour charger ce type de
module, il vous suffit d’un appel comme le suivant :
```js
const fs = require('fs')
```
À présent vous avez le module `fs` entier mis à disposition dans votre
variable nommée `fs`.
Toutes les opérations synchrones (bloquantes) du système de fichier dans le
module `fs` ont un nom qui se termine par 'Sync'. Pour lire un fichier, vous
aurez donc besoin de `fs.readFileSync('/chemin/du/fichier')`. Cette méthode
vous *renverra* un objet `Buffer` avec l’intégralité du contenu du fichier.
La documentation du module `fs` est disponible ici, vous n’avez qu’à l’ouvrir
dans votre navigateur :
{rootdir:/docs-nodejs/fs.html}
Les objets `Buffer` sont l’approche retenue par Node pour représenter
efficacement des tableaux de données, qu’il s’agisse de texte ASCII, de
binaire ou d’autres formats. Les objets `Buffer` peuvent être convertis
en chaînes de caractères par un simple appel à leur méthode `toString()`,
par exemple `const str = buf.toString()`.
La documentation des `Buffer`s est disponible en ouvrant le fichier
suivant dans votre navigateur :
{rootdir:/docs-nodejs/buffer.html}
Si vous cherchez un moyen simple de compter les sauts de lignes dans une
chaîne de caractères, souvenez-vous qu’une `String` JavaScript peut être
découpée avec `.split()` en un tableau de sous-chaînes, et que '\n' peut
y être renseigné comme délimiteur. À ce propos, le fichier de test n’aura
pas de '\n' à la fin, donc il contiendra un élément de plus que le nombre
de fins de ligne.