Gestion de fichiers dans le nœud.js utilisant des flux | Expliqué avec des exemples

Gestion de fichiers dans le nœud.js utilisant des flux | Expliqué avec des exemples
La création d'applications réelles nécessite souvent que le programme puisse interagir avec les fichiers et les systèmes de fichiers et la création d'une application dans l'environnement Nodejs ne fait pas exception. Pour cette interaction de données avec les fichiers via NodeJS, il y a l'utilisation du concept de flux. Les flux de Nodejs ne sont pas un concept de nœud uniquement, il a d'abord été implémenté dans un système d'exploitation basé sur UNIX.

Les flux sont un moyen de lire un fichier bit-by-bit et de passer de petites morceaux de données au serveur plutôt que de lire un fichier dans son ensemble, puis de passer des informations au serveur comme un fichier Big Data. Cela peut ne pas ressembler à un gros problème, mais en réalité, cela fait gagner beaucoup de temps sur le serveur.

Streams dans Nodejs

Les flux fonctionnent comme une file d'attente à l'aide d'un tampon, un tampon est un petit espace temporaire qui est utilisé pour stocker un morceau de données qui doit être transféré. Le tampon fonctionne comme une file d'attente, si vous souhaitez transférer une grande quantité de données d'un point à un autre, le tampon charge un morceau de données et le transmet sur le serveur, et attend que le serveur réponde afin qu'il puisse éliminer Ce morceau de données de sa file d'attente. Bien qu'il attend la réponse du serveur, il charge plus de morceaux de données en fonction de la taille du tampon défini par le programmeur ou l'application.

Tout ce processus pour obtenir un morceau du fichier, le charger dans le tampon, puis l'analyse de ce morceau à l'application \ Server est connu comme un Flux. Dans Nodejs, il existe trois types différents de flux

  • Le flux en lecture seule appelée le flux lisible
  • Le flux d'écriture uniquement appelé le flux écrivative
  • Le flux de lecture et d'écriture s'appelle le flux duplex

Lire les données d'un fichier via des flux dans NodeJS

Pour commencer par le tutoriel, vous devez utiliser la commande dans le terminal:

npm init -y

Cela créera un nouveau projet de nœud pour nous avec le package.Fichier JSON dans notre répertoire

Pour lire certaines données à partir d'un fichier à l'aide de Nodejs, vous aurez besoin d'un fichier avec un texte. Par conséquent, créez un nouveau fichier texte et placez certains "Lorem Ipsum" Texte utilisant le générateur Lorem Ipsum.

Copiez ce texte et placez-le dans le fichier texte et enregistrez le fichier texte:

Comme vous pouvez le voir, le nom du fichier texte est "mes données.SMS". Créez un nouveau fichier JavaScript dans le même répertoire et nommez-le «StreamDemo.JS "

Pour créer un flux de lecture ou d'écriture, nous devons utiliser le "FS" module qui est un module intégré de l'environnement de nœud. Pour inclure le FS Le module de votre programme utilise les lignes de code suivantes:

var fs = require ("fs");

Ensuite, nous devons créer un flux de lecture à partir de notre fichier texte (qui est placé dans le même répertoire que le streamdemo.fichier js) en utilisant la ligne suivante:

var myreadstream = fs.CreateReadStream (__ dirname + '/ mydata.SMS');

Maintenant, nous pouvons utiliser cette variable "Myreadstream" Pour effectuer une tâche à chaque fois qu'il reçoit un nouveau morceau de données. Utilisez des lignes de code suivantes pour imprimer le morceau sur la console chaque fois que notre flux obtient un nouveau morceau:

myreadstream.sur ("data", fonction (chunk)
console.log ("Nouveau morceau a été accepté par le programme");
console.journal (morceau);
);

Pour exécuter ce programme, dans le type de terminal la commande suivante:

nœud streamdemo

Vous verrez la sortie suivante dans votre console:

Comme vous pouvez le voir, nous avons pu recevoir et imprimer les données de notre fichier, cependant, les données que nous obtenons sur la console ne sont pas la même que celle que nous avons dans notre fichier. En effet, nous devons définir une procédure de codage dans le flux de lecture. Alter, la ligne du flux de lecture pour correspondre à la ligne de code suivante:

var myreadstream = fs.CreateReadStream (__ dirname + '/ mydata.txt ', "utf8");

Comme vous pouvez le voir, nous avons ajouté le «UTF8» Encodage à notre flux. Maintenant, si nous réinstallons en utilisant le «Node streamdemo» Commande Nous obtenons le résultat suivant sur notre terminal:

Et voilà, nous lisons les données correctes du fichier et les imprimant sur la console

Rédaction de données dans un fichier via des flux dans NodeJS

Nous pouvons écrire dans un fichier en utilisant le flux d'écriture dans NodeJS qui est également livré avec le module "FS". Nous rédigerons les données que nous avons reçues dans la section précédente et l'écrire un nouveau fichier que nous écrivons.SMS

Pour écrire des données dans un fichier, nous allons créer un nouveau écrire un flux Utilisation de la ligne de code suivante:

var mywriteStream = fs.CreateWritestream (__ Dirname + '/ WriteInme.txt ', "utf8");

Comme vous pouvez le remarquer, nous avons déjà inclus le «UTF8» Encodage dans le flux d'écriture. Pour écrire le morceau que nous recevons du "mes données" Fichier texte dans le nouveau fichier, nous allons utiliser le code suivant:

myreadstream.sur ("data", fonction (chunk)
console.log ("Nouveau morceau a été accepté par le programme");
MyWriteStream.écrire (morceau);
console.log ("Chunk écrit dans le nouveau fichier texte");
);

Exécutez le programme en utilisant la commande:

nœud streamdemo

Vous obtiendrez la sortie suivante:

Comme vous pouvez le voir dans l'explorateur de votre éditeur de code, un nouveau texte de fichier a été automatiquement créé et si double-cliquez sur "Écrivez-vous » Fichier texte Vous verrez les données suivantes dans ce fichier:

Ainsi, à partir de l'image ci-dessus, il est clair que nous avons pu écrire des données dans un fichier à l'aide de flux

Conclusion

Les flux sont utilisés pour charger des données à \ de un fichier par \ sur l'application bit-by bit ou en petits morceaux. Nous pouvons lire et écrire des données en utilisant des flux inclus dans le FS (système de fichiers) module. Le module Système de fichiers (FS) est un module intégré avec NodeJS. Il existe trois types différents de flux, à savoir: un flux lisible, un flux écrite et le flux duplex. Dans cet article, nous avons implémenté un programme de nœuds simples qui nous a permis de lire les données d'un fichier et de l'écrire à un fichier différent à l'aide de flux de données et de tampons.