Introduction
Piping streams lets you connect data sources and destinations easily. It helps move data step-by-step without loading everything in memory.
Jump into concepts and practice - no test required
Piping streams lets you connect data sources and destinations easily. It helps move data step-by-step without loading everything in memory.
readableStream.pipe(writableStream);
input.txt to output.txt using streams.const fs = require('node:fs'); const readable = fs.createReadStream('input.txt'); const writable = fs.createWriteStream('output.txt'); readable.pipe(writable);
const zlib = require('node:zlib'); const fs = require('node:fs'); const readable = fs.createReadStream('input.txt'); const gzip = zlib.createGzip(); const writable = fs.createWriteStream('input.txt.gz'); readable.pipe(gzip).pipe(writable);
This program reads example.txt, compresses it using gzip, and saves it as example.txt.gz. When done, it logs a success message.
import fs from 'node:fs'; import zlib from 'node:zlib'; const readable = fs.createReadStream('example.txt'); const gzip = zlib.createGzip(); const writable = fs.createWriteStream('example.txt.gz'); readable.pipe(gzip).pipe(writable); writable.on('finish', () => { console.log('File compressed successfully'); });
Always handle errors on streams to avoid crashes.
Use the 'finish' event on writable streams to know when writing is done.
Piping helps keep memory usage low by processing data in chunks.
Piping connects readable and writable streams simply.
It is useful for copying, transforming, or compressing data streams.
It manages data flow automatically, making code cleaner and efficient.
readStream into a writable stream writeStream?pipe() method is called on a readable stream and takes a writable stream as argument.const fs = require('fs');
const readStream = fs.createReadStream('input.txt');
const writeStream = fs.createWriteStream('output.txt');
readStream.pipe(writeStream);
writeStream.on('finish', () => console.log('Done'));const fs = require('fs');
const readStream = fs.createReadStream('file.txt');
const writeStream = fs.createWriteStream('copy.txt');
writeStream.pipe(readStream);input.txt, compress it using zlib's gzip, and write the compressed data to output.gz. Which code snippet correctly pipes these streams together?