티스토리 뷰
Node.js의 'fs'모듈을 활용해서 파일 I/O작업을 구현할 수 있다. fs모듈의 메서드는 동기식일 수도 있고 비동기식일 수도 있다. 비동기 함수에는 비동기 함수의 완료를 나타내는 마지막 매개변수로 콜백함수가 있다.
readFileSync(동기)와 readFile(비동기) 메소드는 비동기식 메소드가 콜백함수가 존재하는 점을 제외하고는 구현방식이 동일하다.
🍕readFileSync()
fs.readFileSync(path, options)
//혹은 간단하게 readFileSync("파일경로", "encoding");
- file: 텍스트 파일의 상대 경로를 사용한다. 경로는 URL유형일 수 있다. 파일은 파일 설명자일 수도 있다.
- 두 파일이 같은 폴더에 있는 경우 파일 이름을 따옴표로 묶는다.
- options: 인코딩 및 플래그를 포함하는 선택적 매개변수, 인코딩에는 데이터 사양이 포함된다. 기본값은 원시 버퍼를 반환하는 null이며 플래그에는 파일의 작업 표시가 포함된다. 기본값은 'r'이다.
- return: 해당 메서드는 파일의 내용을 반환한다.
const fs = require('fs');
// 기본 문법: fs.readFileSync(path, options)
const data = fs.readFileSync('example.txt');
console.log(data); // <Buffer 68 65 6c 6c 6f>
-> 인코딩 옵션을 넣지 않으면 Buffer 객체(바이너리 데이터)를 반환하기 때문에 utf-8 인코딩 옵션을 넣어줘야 합니다.
const data = fs.readFileSync('example.txt', {encoding:'utf8',flag:'r'});
console.log(data); // hello
혹은 간단하게 표현도 가능합니다. readFileSync("파일경로", "encoding");
const data = fs.readFileSync('example.txt', 'utf-8');
console.log(data); // hello
🍕readFile()
fs.readFile()메서드는 파일을 읽는데 사용되는 내장 메서드이다. 해당 메서드는 전체 파일을 버퍼로 읽습니다.
fs.readFile(filename,encoding,callback)
- filename: 읽을 파일의 이름이나 다른 위치에 저장된 경우, 전체 경로
- encoding: 파일의 인코딩을 보유. 기본값은 'utf8'이다.
- callback: 파일을 읽은 후 호출되는 콜백함수
- err: 작업에 실패하면 반환되는 오류 (callback함수 첫 번째 인자)
- data: (성공시) 파일의 내용 (callback함수 두 번째 인자)
사용방법
-동기식 readFileSync와 다르게 readFile메소드는 비동기식으로 동작함으로써 콜백함수로 메소드의 결과를 받아볼 수 있습니다. 콜백함수의 첫번째 param인 err를 통해 에러 내용을 확인하고 데이터를 성공적으로 가져왔다면 두 번째 param인 data를 통해 파일 내용을 읽어올 수 있습니다.
const fs = require('fs');
fs.readFile('example1.txt','utf8',(err, data)=>{
if(err){
console.log(err);
}
}else{
console.log(data);
}
})
'코딩테스트 > 연습문제' 카테고리의 다른 글
[프로그래머스 | 0단계] 배열의 유사도, 옷가게 할인받기, 중앙값 구하기 (0) | 2023.01.19 |
---|---|
[수학문제] 100! 의 끝에 0의 개수는 몇이나 있을까? (0) | 2022.11.03 |
[백준 | node.js] 백준문제 2588번 (JS 자동 형변환) (0) | 2022.04.25 |
[Node.js] readline 모듈을 사용하여 표준 입력 받기 (0) | 2022.04.22 |
[Node.js] node js 기초 (0) | 2022.04.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 타입스크립트 DT
- nvm경로 오류
- nvm 설치순서
- ~ ^
- is()
- 틸드와 캐럿
- 원티드 FE 프리온보딩 챌린지
- 프리렌더링확인법
- 항해99추천비추천
- 형제 요소 선택자
- && 셸 명령어
- 항해99프론트후기
- getServerSideProps
- 타입스크립트 장점
- 원티드 프리온보딩 FE 챌린지
- 원티드 프리온보딩 프론트엔드 챌린지 3일차
- 항해99프론트
- text input pattern
- D 플래그
- 원티드 3월 프론트엔드 챌린지
- getStaticPaths
- reactAPI
- grid flex
- Prittier
- tilde caret
- float 레이아웃
- aspect-ratio
- 부트캠프항해
- 프리온보딩 프론트엔드 챌린지 3월
- fs모듈 넥스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함