원래 코테 준비를 Python으로 진행했지만.. 프론트로 진로를 정한 이상 더 이상 미룰 수 없다..!!
📍 fs
는 File System
의 약자로 파일 시스템과 상호작용할 수 있도록 한다
// fs module 불러오기
const fs = require('fs');
// fs 모듈의 내용이 변경되지 않도록 보장하기 위해 const를 사용하는 것이 좋다
// 다른 라이브러리나 모듈을 불러올 때는 일반적으로 const를 사용하는 것이 좋으며, 이는 코드의 안정성을 높인다
→ 위 코드를 추가하면 fs
모듈을 사용할 수 있다
다양한 메소드가 포함되어 있지만, 입출력을 위주로 살펴보고자 한다
fs.readFile(file[, options], callback)
📍 filename
의 파일을 읽은 후 callback
으로 전달된 함수를 호출한다
📍 option
은 파일을 읽는 방식이다(e.g. 'utf-8')
📍 비동기로 동작한다
fs.readFile('/etc/passwd', (err, data) => {
// 파일을 읽다 에러가 생기면 매개변수에 err 객체가 전달
if (err) throw err;
// 에러가 발생하지 않으면 data 객체가 전달
console.log(data);
});
fs.readFileSync(file[, options])
📍 filename
의 파일을 읽은 후 파일의 내용을 반환한다
📍 ByteArray
로 반환되므로 적절한 변환이 필요하다
📍 동기로 동작한다
const fs = require('fs');
try {
// /dev/stdin: 표준 입력(0)
// 입력받은 배열을 문자열로 변환
const input = fs.readFileSync("/dev/stdin");
console.log(input);
} catch (err) {
// 파일 읽는 중에 오류가 발생했을 때 실행
console.error(err);
}
📍 표준 입력 등의 Readable stream
으로부터 문자열을 한 줄씩 읽어들일 수 있도록 하는 모듈이다
📍 fs
보다 느리다: 되도록 fs
를 사용할 것
const readline = require('readline');
// 인터페이스 생성
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(line) {
// 입력값: line
console.log(line);
rl.close();
}).on('close', function() {
//문제 풀이 로직
process.exit();
});
// close
rl.on('close', function() {
process.exit();
});
const fs = require('fs');
// toString() 메소드를 이용한다
// trim()은 개행을 없애기 위한 용도
const input = fs.readFileSync("/dev/stdin").toString().trim();
const fs = require('fs');
// 개행 기준으로 나눠주면 된다
const input = fs.readFileSync("/dev/stdin").toString().split('\n');
const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString();
// String으로 변환한 객체를 Number 객체로
// 정수, 실수 둘 다 사용 가능
const num = Number(input);
process.stdout.write()
📍 문자열만 출력 가능하니 주의하자