더북(TheBook)

createWriteStream.js

const fs = require('fs');

const writeStream = fs.createWriteStream('./writeme2.txt');
writeStream.on('finish', () => {
  console.log('파일 쓰기 완료');
});

writeStream.write('이 글을 씁니다.
');
writeStream.write('한 번 더 씁니다.');
writeStream.end();

writeme2.txt를 열어보면 조금 전에 넣었던 문자열이 그대로 들어 있을 것입니다.

콘솔

$ node createWriteStream
파일 쓰기 완료

먼저 createWriteStream으로 쓰기 스트림을 만듭니다. 첫 번째 인수로는 출력 파일명을 입력합니다. 두 번째 인수는 옵션인데, 여기서는 사용하지 않습니다.

finish 이벤트 리스너도 붙였습니다. 파일 쓰기가 종료되면 콜백 함수가 호출됩니다.

writeStream에서 제공하는 write 메서드로 넣을 데이터를 씁니다. 이는 여러 번 호출할 수 있습니다. 데이터를 다 썼다면 end 메서드로 종료를 알립니다. 이때 finish 이벤트가 발생합니다.

createReadStream으로 파일을 읽고 그 스트림을 전달받아 createWriteStream으로 파일을 쓸 수도 있습니다. 파일 복사와 비슷합니다. 스트림끼리 연결하는 것을 ‘파이핑한다’고 표현하는데, 액체가 흐르는 관(파이프(pipe))처럼 데이터가 흐른다고 해서 지어진 이름입니다.

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