파일 시스템 접근하기
fs 모듈은 파일 시스템에 접근하는 모듈입니다. 즉, 파일을 생성하거나 삭제하고, 읽거나 쓸 수 있습니다. 폴더도 만들거나 지울 수 있습니다.
readme.txt
저를 읽어주세요.
readFile.js
const fs = require("fs");
fs.readFile("./readme.txt", (err, data) => {
if (err) {
throw err;
}
console.log(data);
console.log(data.toString());
});
fs 모듈을 불러온 뒤 읽을 파일을의 경로를 지정합니다. 여기서는 파일의 경로가 현재 파일 기준이 아니라 node 명령어를 실행하는 콘솔 기준이러는 점에 유의해야 합니다.
파일을 읽은 후에 실행될 콜백 함수도 readFile 메소드의 인수로 같이 넣습니다. 이 콜백 함수의 매개변수로 에러 또는 데이터를 받습니다. 파일을 읽다가 무슨 문제가 생겼다면 에러가 발생할 것이고, 정상적으로 읽었다면 다음과 같이 콘솔에 결과가 나올 것입니다.
콘솔
$ node readFile
<Buffer ec a0 80 eb a5 bc 20 ec 9d bd ec 96 b4 ec a3 bc ec 84 b8 ec 9a 94 2e>
저를 읽어주세요.
console.log(data)를 헀더니 Buffer라는 이상한 것이 출력됩니다. 그래서 data에 toString()을 붙여서 로그를 찍었더니 그대로 문자열이 출력됩니다. readFile의 결과물은 버퍼(Buffer)라는 형식으로 제공됩니다.
버퍼는 사람들이 읽을 수 있는 형식이 아니므로 toString을 사용해 문자열로 변환했습니다.
readFilePromise.js
const fs = require("fs").promises;
fs.readFile("./readme.txt")
.then((data) => {
console.log(data);
console.log(data.toString());
})
.catch((err) => {
console.log(err);
});
fs 모듈에서 promise 속성을 불러오면 프로미스 기반의 fs 모듈을 사용할 수 있게 됩니다. 앞으로는 프로미스 기반의 fs 모듈을 사용하겠습니다.
writeFile.js
const fs = require("fs").promises;
fs.writeFile("./writeme.txt", "글이 입력됩니다")
.then(() => {
return fs.readFile("./writeme.txt");
})
.then((data) => {
console.log(data.toString());
})
.catch((err) => {
console.error(err);
});
writeFile 메서드에 생성될 파일의 경로와 내용을 입력합니다. 도중에 에러가 발생하지 않았다면 같은 폴더 내에 writeme.txt가 생성되었을 것입니다.
콘솔
$ node writeFile
글이 입력됩니다
'프로그래밍 언어 > NODE JS' 카테고리의 다른 글
| 버퍼와 스트림 이해하기 (0) | 2025.04.28 |
|---|---|
| 동기 메서드와 비동기 메서드 (0) | 2025.04.26 |
| 기타 모듈들 (0) | 2025.04.19 |
| worker_threads (0) | 2025.04.13 |
| util (0) | 2025.04.10 |