5 min read
•Question 24 of 62mediumWhat 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
| Type | Description | Example |
|---|---|---|
| Readable | Read data from source | fs.createReadStream() |
| Writable | Write data to destination | fs.createWriteStream() |
| Duplex | Both read and write | net.Socket |
| Transform | Modify data while reading/writing | zlib.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'));