Streams
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 !!!!!
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !