개발/Node.js

[Node.js] Buffer to String 처리방법과 간단예시 | readFileSync encoding

남양주개발자 2021. 11. 17. 08:04
728x90
반응형

[Node.js] Buffer to String 처리방법과 간단예시 readFileSync encoding
example.txt

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
728x90
반응형
그리드형