Node.js에서 example.txt 파일을 읽어서 불러오는 방법은 아래와 같습니다. 일반적으로 파일시스템 readFileSync 메소드를 통해 파일을 읽어오면 바이너리 데이터로 받아오게 되는데 Buffer 객체로 나오는 이유가 Binary 데이터를 담을 수 있는 객체가 바로 Buffer 객체이기 때문입니다.
const fs = require('fs');
const data = fs.readFileSync('example.txt')
console.log(data); // <Buffer 68 65 6c 6c 6f>
그렇기 때문에 파일을 읽어올 때 인코딩 타입을 utf-8로 설정하거나, Buffer 객체를 받아온 후 toString 메소드를 활용해 utf-8로 변환해야합니다.
Buffer to String
단일 버퍼가 있는 경우 특정 인코딩을 사용하여 이진 내용의 전체 또는 일부를 문자열로 변환하는 toString 메서드를 사용할 수 있습니다. 매개변수를 제공하지 않으면 기본값은 utf8이지만 이 예제에서는 인코딩을 명시적으로 설정했습니다.
const fs = require('fs');
const data = fs.readFileSync('example.txt')
console.log(data.toString('utf-8')); // hello
readFileSync
위 방식보다 좀 더 깔끔하게 해결할 수 있는 방법은 readFileSync 인코딩 옵션을 utf-8로 설정하는 것입니다. 그렇기 때문에 기본적으로 readFileSync 메소드를 사용할 때 인코딩 utf-8 옵션을 세팅하고 사용하곤 합니다.
const fs = require('fs');
const data = fs.readFileSync('example.txt', {encoding:'utf8', flag:'r'})
console.log(data); // hello
'개발 > Node.js' 카테고리의 다른 글
[Node.js] fs.readFile, fs.readFileSync 사용법과 간단예시 | 파일 읽기 (0) | 2021.11.17 |
---|---|
[Node.js] 폴더 안에 모든 파일 삭제하는 방법 (How to remove all files from directory) (0) | 2021.11.12 |
[Node.js] fs.writeFile, fs.writeFileSync 사용법과 간단예시 | 파일 저장 (0) | 2021.11.12 |
Node.js 티스토리 파일 업로드 API 구현하는 방법(multipart/form-data 이놈..) (1) | 2021.01.05 |
Node.js에서 캔버스(Canvas)로 이미지 만들고 저장하는 방법 (0) | 2021.01.04 |
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.