스트림은 버퍼에 담는 것까지는 버퍼와 동일하나, 버퍼의 내용일 한 번에 보내는 것이 아니라 조금씩 꾸준히 계속 보내는 것을 의미한다.
const fs = require('fs');
const readStream = fs.createReadStream('./readme3.txt', { highWaterMark: 16 });
const data = [];
readStream.on('data', (chunk) => {
data.push(chunk);
console.log('data :', chunk, chunk.length);
console.log('middle :', chunk.toString());
});
readStream.on('end', () =>{
console.log('end :', Buffer.concat(data).toString());
});
readStream.on('error', (err) => {
console.error('error:', err);
});
스트림으로 데이터를 보낼때 나눠진 조각을 chunk라고 부른다. data 이벤트를 설정해 chunk가 들어오면 data라는 배열에 하나씩 push된다.