Streams are essentially sequences of data that are read or written piece by piece (or chunk by chunk) rather than all at once.
const fs = require('fs'); const readableStream = fs.createReadStream('example.txt'); readableStream.on('data', (chunk) => { console.log(chunk); }); readableStream.on('end', () => { console.log('End of stream'); }); readableStream.on('error', (err) => { console.error(err); });
const fs = require('fs'); const writableStream = fs.createWriteStream('output.txt'); writableStream.write('Hello, '); writableStream.write('world!'); writableStream.end(); writableStream.on('finish', () => { console.log('Write completed'); }); writableStream.on('error', (err) => { console.error(err); });
const net = require('net'); const server = net.createServer((socket) => { // socket is both readable and writable });
const zlib = require('zlib'); const gzip = zlib.createGzip(); const readableStream = fs.createReadStream('example.txt'); const writableStream = fs.createWriteStream('example.txt.gz'); readableStream.pipe(gzip).pipe(writableStream);