개발/Node.js
[Node.js] Buffer to String 처리방법과 간단예시 | readFileSync encoding
남양주개발자
2021. 11. 17. 08:04
728x90
반응형
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
반응형
그리드형