더북(TheBook)

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 방식으로 압축하는 코드입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.