readme4.txt
저를 writeme3.txt로 보내주세요.
pipe.js
const fs = require('fs');
const readStream = fs.createReadStream('readme4.txt');
const writeStream = fs.createWriteStream('writeme3.txt');
readStream.pipe(writeStream);
콘솔
$ node pipe
readme4.txt와 똑같은 내용의 writeme3.txt가 생성되었을 것입니다. 미리 읽기 스트림과 쓰기 스트림을 만들어둔 후 두 개의 스트림 사이를 pipe 메서드로 연결하면 저절로 데이터가 writeStream으로 넘어갑니다. 따로 on('data')나 writeStream.write를 하지 않아도 알아서 전달되므로 편리합니다. 노드 8.5 버전이 나오기 전까지는 이 방식으로 파일을 복사하곤 했습니다. 새로운 파일 복사 방식은 3.6.3절에 나옵니다.
pipe는 스트림 사이에 여러 번 연결할 수 있습니다. 다음 코드는 파일을 읽은 후 gzip 방식으로 압축하는 코드입니다.