Node.JS Read Write Steams and Pipes
ReadStream
const fs = require('fs');
const stream = fs.createReadStream('lorem.txt', 'utf-8');
let data = '';
// stream.on('data', part => {
// console.log(part.length);
// });
stream.on('data', (part) => (data += part));
// stream.on('end', () => console.log('End', data.length));
stream.on('end', () => console.log('End', data));
stream.on('error', (error) => console.log('Error', error.message));
WriteStream
const fs = require('fs');
const stream = fs.createReadStream('lorem.txt', 'utf-8');
const output = fs.createWriteStream('lorem.md');
let data = '';
stream.on('data', (part) => output.write(part));
stream.on('error', (error) => console.log('Error', error.message));
Pipe 1
const fs = require('fs');
const input = fs.createReadStream('lorem.txt');
const output = fs.createWriteStream('lorem.md');
input.pipe(output);
Pipe 2
const fs = require('fs');
const zlib = require('zlib');
const input = fs.createReadStream('lorem.txt');
const output = fs.createWriteStream('lorem.md.gz');
const gzip = zlib.createGzip();
input.pipe(gzip).pipe(output);
// class ReadStream {
// pipe(stream) {
// this.on('data', part => stream.write(part));
// return stream;
// }
// }