createReadStream vs readFile

2020. 6. 11. 22:53Node.js

최근 node.js fs 모듈을 이용해 파일에서 데이터를 읽어오는 부분이 포함된 과제를 진행했다.

처음 작성한 코드에서는 fs.readFile을 사용했었고 문제 없이 잘 작동이 되었는데, 나중에 조금 더 알아보니 readFile 대신 createReadStream을 사용하는 경우도 있다고 해서 두 메소드에 대해서 알아보았다.

 

 

## readFile

 - 가져오고자 하는 텍스트 파일을 전부 읽어온다.

 - 짧은 파일을 가져올 때에는 사용하기 편하고 좋은 방법이지만, 파일의 크기가 커진다면..?

 

## createReadStream

 - stream 형태로 파일을 읽어온다.

 - stream은 일정한 크기의 chunk로 파일을 받게 되는 형태이다.

 - stream을 사용하면 chunk로 파일을 읽어오기 때문에, 메모리에 저장되는 데이터를 최소한으로 유지할 수 있다.

 - 찾고자 하는 파일을 찾은 뒤에는 stream.destroy() 메소드를 사용해 나머지 데이터까지 읽어오는 것을 차단할 수 있다.

 - 그래서 파일의 크기가 커진다면 readFile에 비해서 처리 속도가 훨씬 빨라진다.

 

 

 

nodeJS createReadStream 사용법: 

https://nodejs.org/en/knowledge/advanced/streams/how-to-use-fs-create-read-stream/

 

 

nodeJS API 문서:

https://nodejs.org/dist/latest-v12.x/docs/api/fs.html#fs_fs_createreadstream_path_options

https://nodejs.org/dist/latest-v12.x/docs/api/fs.html#fs_fs_readfile_path_options_callback

https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_destroy_error

 

 

blogs:

https://velog.io/@yhe228/readFile-vs-createReadStream

https://medium.com/@dalaidunc/fs-readfile-vs-streams-to-read-text-files-in-node-js-5dd0710c80ea

https://www.codewithc.com/difference-readfile-createreadstream-node-js/

 

 

 

 

'Node.js' 카테고리의 다른 글

Node.js, NVM, NPM  (0) 2020.04.28