내장 모듈 - fs(readFile, writeFile)

tapata·2022년 3월 25일
0

Node

목록 보기
3/3

파일 읽기

  • readFile
    • 모든 데이터를 한번에 Buffer에 담아서 읽는 방식
    • 할당 받을 메모리 공간 부족하면 에러

파일 읽기 1

  • fs.readFile(file,cb)
  • 비동기적으로 파일 읽기
  • 파일 전체를 읽은 다음 Buffer 에 담고, 콜백함수에서 결과 처리
import fs from 'fs';

fs.readFile('file/text.txt',(err:NodeJS.ErrnoException|null,data:Buffer)=>{
  if(err){
    throw err;
  }
  console.log(`File Size : ${data.length} bytes`)
  console.log(data.toString())
})

파일 읽기 2

  • fs.readFileSync
  • 동기적으로 파일읽기
  • 파일을 동기적으로 읽고 Buffer를 리턴
import fs from 'fs';

try{
  let data:Buffer = fs.readFileSync("file/text.txt");
  console.log(`File Size : ${data.length} Bytes`)
  console.log(data.toString())
}catch(err){
  console.error(err)
}

파일 읽기 3

  • 비동기 + promise
import fs from 'fs/promises'

fs.readFile("files/text.txt")
  .then((data) => {
    console.log(`Length : ${data.length}`);
    console.log(data.toString("utf-8"));
  })
  .catch((err) => {
    console.error(err);
  });

파일 쓰기

  • writeFile : 파일 쓰기
  • appendFile : 파일 쓰기 or 이미 존재하는 파일인 경우 뒤에 추가

파일 쓰기1

  • 비동기적으로 파일 쓰기
import fs from "fs";

fs.writeFile("files/writeFile.txt", "New York London Paris", (err) => {
  if (err) {
    console.error(err);
  } else {
    console.log("Completed!");
  }
});

파일 쓰기2

  • 동기적으로 파일 쓰기
  • fs.writeFileSync(file, data, options)
import fs from "fs";

try {
  fs.writeFileSync("files/writeFileSync.txt", "write file sync");
  console.log("Completed");
} catch (err) {
  console.error(err);
}

파일 쓰기3

  • 비동기 + promise
import fs from "fs/promises";

fs.writeFile("files/writeFilePromise.txt", "Write file promise")
  .then(() => {
    console.log("Completed!");
  })
  .catch((err) => {
    console.error(err);
  });

References

profile
hello

0개의 댓글