[JS] JavaScript로 입력 받기

zinnnn37·2024년 5월 27일
0

🖥️ JavaScript

목록 보기
1/3

원래 코테 준비를 Python으로 진행했지만.. 프론트로 진로를 정한 이상 더 이상 미룰 수 없다..!!

🗂️ fs module

📍 fsFile System의 약자로 파일 시스템과 상호작용할 수 있도록 한다

// fs module 불러오기
const fs = require('fs');
// fs 모듈의 내용이 변경되지 않도록 보장하기 위해 const를 사용하는 것이 좋다
// 다른 라이브러리나 모듈을 불러올 때는 일반적으로 const를 사용하는 것이 좋으며, 이는 코드의 안정성을 높인다

→ 위 코드를 추가하면 fs 모듈을 사용할 수 있다

다양한 메소드가 포함되어 있지만, 입출력을 위주로 살펴보고자 한다


⌨️ Read

♟️ fs.readFile()

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()

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);
}

📃 readline module

📍 표준 입력 등의 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();
});

🎛️ fs 입력값 처리

✍️ 문자열

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);

💫 Write

🛰️ 줄바꿈 없이 출력하기

process.stdout.write()

📍 문자열만 출력 가능하니 주의하자


📑 Reference

Node.js fs module
Node.js readline module

profile
😎노션 상주 중,,😎

0개의 댓글