Dateibehandlung im Knoten.JS Verwenden Streams | Mit Beispielen erklärt

Dateibehandlung im Knoten.JS Verwenden Streams | Mit Beispielen erklärt
Auf dem Erstellen von Anwendungen im realen Leben müssen häufig das Programm in der Lage sein, mit Dateien und Dateisystemen zu interagieren und eine Anwendung in der NodeJS-Umgebung zu erstellen, ist keine Ausnahme. Für diese Dateninteraktion mit Dateien über NodeJs wird das Konzept der Streams verwendet. Streams in NodeJS sind kein nur Knotenkonzept, es wurde zunächst in einem UNIX-basierten Betriebssystem implementiert.

Streams sind eine Möglichkeit, eine Datei zu lesen und kleine Datenbrocken an den Server zu übergeben, anstatt eine Datei als Ganzes zu lesen und dann Informationen als eine Big Dateidatei an den Server zu übergeben. Dies sieht vielleicht nicht wie eine große Sache aus, aber in Wirklichkeit spart dies viel Zeit auf dem Server.

Streams in NodeJs

Streams arbeiten als Warteschlange mit Hilfe eines Puffer. Puffer arbeitet als Warteschlange, wenn Sie eine große Datenmenge von einem Punkt auf einen anderen übertragen möchten, lädt der Puffer einen Datenback und übergibt sie auf den Server und wartet darauf, dass der Server reagiert, damit er verwerfen kann Dieser Datenback aus seiner Warteschlange. Während es auf die Antwort des Servers wartet, lädt es mehr Datenbrocken basierend auf der Größe des vom Programmierer oder der Anwendung festgelegten Puffer.

Dieser gesamte Prozess, um einen Stück aus der Datei zu holen, ihn in den Puffer zu laden und dann diesen Chunk an die Anwendung \ Server zu analysieren Strom. In NodeJs gibt es drei verschiedene Arten von Streams

  • Der schreibgeschützte Stream nannte den lesbaren Stream
  • Der nur Schreibstream nannte den beschreibbaren Stream
  • Der Lese- und Schreibstrom wird als Duplex -Stream bezeichnet

Lesen Sie Daten aus einer Datei über Streams in NodeJs

Um mit dem Tutorial zu beginnen, müssen Sie den Befehl im Terminal verwenden:

npm init -y

Dadurch wird ein neues Knotenprojekt für uns zusammen mit dem Paket erstellt.JSON -Datei in unserem Verzeichnis

Um einige Daten aus einer Datei mithilfe von NodeJS zu lesen, benötigen Sie eine Datei mit einem Text darin. Erstellen Sie daher eine neue Textdatei und platzieren Sie etwas "Lorem Ipsum" Text mit dem Lorem Ipsum -Generator.

Kopieren Sie diesen Text und platzieren Sie ihn in die Textdatei und speichern Sie die Textdatei:

Wie Sie sehen können, lautet der Name der Textdatei "meine Daten.txt". Erstellen Sie eine neue JavaScript -Datei im selben Verzeichnis und nennen Sie sie “Streamdemo.JS ”

Um einen Lese- oder Schreibstream zu erstellen, müssen wir die verwenden "Fs" Modul, das als integriertes Modul der Knotenumgebung ausgestattet ist. Um die zu enthalten fs Modul in Ihrem Programm Verwenden Sie die folgenden Codezeilen:

var fs = require ("fs");

Als Nächst.JS -Datei) Verwenden der folgenden Zeile:

var myreadstream = fs.CreateReadStream (__ Dirname + '/mydata.txt');

Jetzt können wir diese Variable verwenden "MyReadstream" Jedes Mal, wenn sie einen neuen Datenanteil empfängt. Verwenden Sie die folgenden Codezeilen, um das Stück jedes Mal auf die Konsole zu drucken, wenn unser Stream einen neuen Teil erhält:

MyReadstream.auf ("Daten", Funktion (Chunk)
Konsole.log ("New Chunk wurde vom Programm akzeptiert");
Konsole.log (chunk);
);

Um dieses Programm auszuführen, geben Sie im Terminal den folgenden Befehl an:

Knoten Streamdemo

Sie sehen die folgende Ausgabe in Ihrer Konsole:

Wie Sie sehen, konnten wir die Daten aus unserer Datei empfangen und ausdrucken. Die Daten, die wir auf der Konsole erhalten. Dies liegt daran. Alter, die Zeile des Lesestreams, der mit der folgenden Codezeile übereinstimmt:

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

Wie Sie sehen können, haben wir das hinzugefügt "UTF8" Codierung unseres Streams. Nun, wenn wir die Verwendung des "Knoten Streamdemo" Befehl Wir erhalten das folgende Ergebnis in unserem Terminal:

Und da, lesen wir die richtigen Daten aus der Datei und drucken sie auf die Konsole

Schreiben von Daten in eine Datei über Streams in NodeJs in eine Datei schreiben

Wir können mit dem Schreibstream in NodeJS in eine Datei schreiben, die auch mit dem Modul geliefert wird "Fs". Wir schreiben die Daten, die wir im vorherigen Abschnitt erhalten haben, und schreiben ihr eine neue Datei, die wir schreiben werden.txt

Um Daten in eine Datei zu schreiben, werden wir eine neue erstellen Schreibstream Verwenden der folgenden Codezeile:

var mywritestream = fs.Createwritestream (__ Dirname + '/wrapinme.txt ', "utf8");

Wie Sie bemerken können, haben wir die bereits aufgenommen "UTF8" Codierung im Schreibstream. Um den Chunk zu schreiben, den wir von der erhalten "meine Daten" Textdatei zur neuen Datei Wir werden den folgenden Code verwenden:

MyReadstream.auf ("Daten", Funktion (Chunk)
Konsole.log ("New Chunk wurde vom Programm akzeptiert");
mywritestream.Schreiben (Chunk);
Konsole.log ("Chunk in die neue Textdatei geschrieben");
);

Führen Sie das Programm mit dem Befehl aus:

Knoten Streamdemo

Sie erhalten die folgende Ausgabe:

Wie Sie im Explorer Ihres Code -Editors sehen können, dass ein neuer Dateitext automatisch erstellt wurde und wenn Sie auf die "auf die" klicken "writeInme ” Textdatei Sie sehen die folgenden Daten in dieser Datei:

Aus dem obigen Bild ist also klar, dass wir Daten mit Streams in eine Datei schreiben konnten

Abschluss

Streams werden verwendet, um Daten zu laden zu \ von Eine Datei von \ auf die Anwendung bit für Bit oder in kleinen Stücken. Wir können Daten lesen und schreiben, indem wir Streams verwenden, die in der enthalten sind FS (Dateisystem) Modul. Das Modul des Dateisystems (FS) wird als integriertes Modul mit NodeJs ausgestattet. Es gibt drei verschiedene Arten von Streams, nämlich: lesbarer Stream, beschreibbarer Stream und der Duplex -Stream. In diesem Beitrag haben wir ein einfaches Knotenprogramm implementiert, mit dem wir Daten aus einer Datei lesen und diese mit Hilfe von Datenströmen und Puffern in eine andere Datei schreiben konnten.