#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
5 min read
Question 24 of 62medium

What are Streams in Node.js?

Understanding Node.js streams and their types.

What You'll Learn

  • What streams are
  • Types of streams
  • When to use streams

What are Streams?

Streams are objects that let you read/write data piece by piece, without loading entire data into memory.

Types of Streams

TypeDescriptionExample
ReadableRead data from sourcefs.createReadStream()
WritableWrite data to destinationfs.createWriteStream()
DuplexBoth read and writenet.Socket
TransformModify data while reading/writingzlib.createGzip()

Example - Reading Large File

code.jsJavaScript
const fs = require('fs');

// ❌ Bad - loads entire file into memory
const data = fs.readFileSync('large-file.txt');

// ✅ Good - processes in chunks
const stream = fs.createReadStream('large-file.txt');
stream.on('data', (chunk) => {
  console.log('Received chunk:', chunk.length);
});
stream.on('end', () => console.log('Done'));

Piping Streams

code.jsJavaScript
const fs = require('fs');
const zlib = require('zlib');

// Compress file using pipe
fs.createReadStream('input.txt')
  .pipe(zlib.createGzip())
  .pipe(fs.createWriteStream('input.txt.gz'));