[Node.js] fs.readFile, fs.readFileSync 사용법과 간단예시 | 파일 읽기

남양주개발자

·

2021. 11. 17. 08:15

728x90
반응형

[Node.js] fs.readFile, fs.readFileSync 사용법과 간단예시, 파일 읽기

Node.js의 'fs' 모듈을 활용해서 파일 I/O 작업을 구현할 수 있습니다. fs 모듈의 메서드는 동기식일 수도 있고 비동기식일 수도 있습니다. 비동기 함수에는 비동기 함수의 완료를 나타내는 마지막 매개변수로 콜백 함수가 있습니다. readFileSync(동기식), readfile(비동기식)으로 비동기식 메소드가 콜백함수가 존재하는 점을 제외하고는 구현하는 방식은 동일합니다.

readFileSync

  • file: 텍스트 파일의 상대 경로를 사용합니다. 경로는 URL 유형일 수 있습니다. 파일은 파일 설명자일 수도 있습니다. 두 파일이 같은 폴더에 있는 경우 파일 이름을 따옴표로 묶습니다.
  • options: 인코딩 및 플래그를 포함하는 선택적 매개변수이며 인코딩에는 데이터 사양이 포함됩니다. 기본값은 원시 버퍼를 반환하는 null이며 플래그에는 파일의 작업 표시가 포함됩니다. 기본값은 'r'입니다.
  • return: 이 메서드는 파일의 내용을 반환합니다.
fs.readFileSync( path, options )

사용방법

const fs = require('fs');

const data = fs.readFileSync('example.txt');

console.log(data); // <Buffer 68 65 6c 6c 6f>

인코딩 옵션을 넣지 않으면 Buffer 객체(바이너리 데이터)를 반환하기 때문에 utf8 인코딩 옵션을 넣어줍니다.

const fs = require('fs');

const data = fs.readFileSync('example.txt', {encoding:'utf8', flag:'r'})

console.log(data); // hello

readFile

fs.readFile() 메서드는 파일을 읽는 데 사용되는 내장 메서드입니다. 이 메서드는 전체 파일을 버퍼로 읽습니다.

  • filename: 읽을 파일의 이름이나 다른 위치에 저장된 경우 전체 경로
  • encoding: 파일의 인코딩을 보유합니다. 기본값은 'utf8'입니다.
  • callback: 파일을 읽은 후 호출되는 콜백 함수입니다.
    • err: 작업에 실패하면 반환되는 오류
    • data: 파일의 내용
fs.readFile( filename, encoding, callback )

사용방법

readFile 메소드 사용방법은 아래와 같습니다. readFileSync(동기식)과는 다르게 readFile 메소드는 비동기식으로 동작함으로 콜백함수로 메소드 결과를 받아볼 수 있습니다. 만약 에러라면 콜백함수 첫 번째 파라미터(에러)를 통해 에러 내용을 확인할 수 있습니다. 만약 데이터를 성공적으로 가져왔다면 두 번째 파라미터를 통해 파일 내용을 읽어올 수 있습니다.

const fs = require('fs');

fs.readFile('example1.txt', 'utf8', (err, data) => {
  if (err) {
    // 만약 파일을 읽어오는데 실패했다면,
    // 아래는 에러 예시
    /**
     * [Error: ENOENT: no such file or directory, open 'example1.txt'] {
     * errno: -2,
     * code: 'ENOENT',
     * syscall: 'open',
     * path: 'example1.txt'
     */
  } else {
    console.log(data); // hello
  }  
})
728x90
반응형
그리드형

💖 저자에게 암호화폐로 후원하기 💖

아이콘을 클릭하면 지갑 주소가자동으로 복사됩니다

0개의 댓글