본문 바로가기
Node

fs모듈 사용해 동기식/비동기식으로 txt파일 읽기, 쓰기(readFile, readFileSync,writeFile,writeFileSync)

by jennyiscoding 2022. 7. 3.

1. 쓰기
    node.js에서 가장 중요하고 기초적인 모듈로,파일 처리와 관련된 모듈이다. 
    모듈 사용을 위해 가장 위에 const fs = require("fs");를 선언해야 한다. 

    바깥에다가 text1.txt파일을 만든다.

 

* require() : 다른 곳에 있는 코드를 불러오는 함수.

 

비동기 방식으로 파일을 읽는 readFile과 동기방식으로 파일을 읽는 readFileSync를 사용해보겠다. 

const fs = require("fs");
fs.readFile('./text1.txt','utf-8',(err,data)=>{
    if(err){
        console.log(err);
    }else{
        console.log("비동기식으로 파일 읽기"+data);
    }
});

const text = fs.readFileSync('./text1.txt','utf-8');
console.log("동기식으로 파일 읽기"+text);

 

1.1 readfile 

사용 : readfile('파일경로','인코딩방식',함수)
파일경로에서 인코딩방식으로 파일을 읽고 함수를 호출해준다.
비동기식으로 동시진행이 된다.
아래로 흐르는 프로그램 흐름하고 동시에 진행이 된다는 것이다.

 

1.2 readFileSync

동기식으로 진행이 된다. 

 

위에 코드를 출력하면 출력순서는?

동기식 -> 비동기식으로 출력이 된다. 

이유 ? 

"비동기식 : 나어차피 시간 걸리니까 밑에꺼좀 하고와! 동기식 : 응 나먼저 할껭"

 

2. 읽기

이것도 마찬가지로, 동기식부터 처리가 되고 비동기식으로 처리가 된다. 

 

wrtieFile사용법 : writeFile(써줄 경로, 우리가 거기에 써줄 데이터, 인코딩방식, 콜백함수(에러라는 매개변수 하나))

const fs = require("fs");
const data = "Hello Node.js!";

//비동기식
fs.writeFile("./text2.txt",data,'utf-8',(err)=>{
    if(err){
        console.log(err);
    }else{
        console.log('비동기식으로 파일 저장!');
    }
});
//동기식
fs.writeFileSync('./text3.txt',data,'utf-8');
console.log('동기식으로 파일 저장!');