프로그래밍 언어/NODE JS

파일 시스템 접근하기

· 코딩마이데이

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