Streams

45 min Niveau 6

Que sont les Streams ?

Les streams sont des objets qui vous permettent de lire des données depuis une source ou d'écrire des données vers une destination de manière continue. Dans Node.js, il y a quatre types de streams :

  • Readable - Stream qui est utilisé pour les opérations de lecture.
  • Writable - Stream qui est utilisé pour les opérations d'écriture.
  • Duplex - Stream qui peut être utilisé pour les opérations de lecture et d'écriture.
  • Transformer - Un type de flux duplex où la sortie est calculée sur la base de l'entrée.

Chaque type de streams est une instance d'EventEmitter et lance plusieurs événements à des moments différents. Par exemple, les événements les plus couramment utilisés sont les suivants :

  • data - Cet événement est déclenché lorsque des données sont disponibles pour la lecture.
  • end - Cet événement est déclenché lorsqu'il n'y a plus de données à lire.
  • error - Cet événement est déclenché en cas d'erreur de réception ou d'écriture de données.
  • finish - Cet événement est déclenché lorsque toutes les données ont été transférées vers le système sous-jacent.

Ce cours fournit une compréhension de base des opérations couramment utilisées sur les streams.

Lecture d'un Stream

Créez un fichier texte nommé input.txt ayant le contenu suivant :

Microlead, le chemin vers le succès !!!!!

Créez un fichier js nommé main.js avec le code suivant :

var fs = require("fs");
var data = '';

// Create a readable stream
var readerStream = fs.createReadStream('input.txt');

// Set the encoding to be utf8. 
readerStream.setEncoding('UTF8');

// Handle stream events --> data, end, and error
readerStream.on('data', function(chunk) {
    data += chunk;
});

readerStream.on('end',function() {
    console.log(data);
});

readerStream.on('error', function(err) {
    console.log(err.stack);
});

console.log("Program Ended");

Maintenant, exécutez le fichier main.js pour voir le résultat :

$ node main.js

Vérifier la sortie.

Program Ended
Microlead, le chemin vers le succès !!!!!

Écrire dans un Stream

Créez un fichier js nommé main.js avec le code suivant :

var fs = require("fs");
var data = 'Microlead, le chemin vers le succès !!!!!';

// Create a writable stream
var writerStream = fs.createWriteStream('output.txt');

// Write the data to stream with encoding to be utf8
writerStream.write(data,'UTF8');

// Mark the end of file
writerStream.end();

// Handle stream events --> finish, and error
writerStream.on('finish', function() {
    console.log("Write completed.");
});

writerStream.on('error', function(err) {
    console.log(err.stack);
});

console.log("Program Ended");

Maintenant, exécutez le fichier main.js pour voir le résultat :

$ node main.js

Vérifier la sortie.

Program Ended
Write completed.

Ouvrez maintenant le fichier output.txt créé dans votre répertoire actuel ; il devrait contenir les éléments suivants :

Microlead, le chemin vers le succès !!!!!
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus