관리 메뉴

bright jazz music

자바스크립트 파일 시스템 모듈과 readLine모듈, /dev/stdin 본문

Algorithm

자바스크립트 파일 시스템 모듈과 readLine모듈, /dev/stdin

bright jazz music 2024. 1. 10. 08:19

1. 파일시스템 모듈

 

입력 데이터가 텍스트 파일 형식으로 주어지는 경우, 파일시스템 모듈을 사용한다.

만약 ./input.txt 파일의 내용이 아래와 같다면,

 

5
48 20 39 55 77

 

let fs = require('fs');
let input = fs.readFileSync('./input.txt', 'utf-8').toString().split('\n');

// split() 을 이용해서 줄바꿈 기호를 기준으로 각각의 정보를 읽어오는 것이 일반적이다.
// readLine 모듈보다 파일시스템 모듈이 빠르게 동작하는 것이 일반적이다. 

console.log(input);

[ '5', '48 20 39 55 77' ]

 

이를 이용하면 파일을 한꺼번에 읽어올 수 있다.

 

2. readLine 모듈

한 줄씩 입력받아서 처리하여 출력할 때는 readLine 모듈을 사용할 수 있다.

 

 

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});

let input = [];
readline.on('line', function(line){
  // 콘솔 입력창에서 줄바꿈(Enter) 입력할 때마다 호출
  input.push(line);
}).on('close', function(){
  // 콘솔 입력창에서 Ctrl+C 또는 Ctrl+D를 누르면 호출. 입력의 종료
  console.log(input);
  process.exit();
});

예시

let readline = require('readline').createInterface({
    input: process.stdin,
    output: process.stdout,
});

let input = [];
let t = 0;

readline.on('line', function(line){
    input.push(line);
    t++;

    if(t >= 2){
        // 필요한 입력이 모두 끝났으면 처리 로직 실행
        readline.close(); // readline 인터페이스 닫기
    }
});

readline.on('close', function() {
    // 이벤트 핸들러에서 처리 로직 실행
    let a = parseInt(input[0]);
    let b = parseInt(input[1]);
  
    console.log(a+b);
});

 

3. /dev/stdin

 

`/dev/stdin`은 UNIX 및 유닉스 계열 운영 체제에서 사용되는 특별한 파일 시스템 경로입니다. 이 경로는 표준 입력 스트림(Standard Input Stream)을 나타냅니다. 간단히 말해, 이것은 프로그램이 사용자로부터 데이터를 받을 수 있는 가상의 파일로, 키보드 입력이나 다른 프로그램의 출력을 프로그램으로 리디렉션할 수 있습니다.

예를 들어, Node.js에서 `fs.readFileSync('/dev/stdin')`을 사용하면, 이는 프로그램이 실행될 때 표준 입력으로부터 데이터를 읽는 것을 의미합니다. 이 방법은 주로 스크립트가 터미널이나 다른 프로그램으로부터 데이터를 직접 받을 때 사용됩니다.

이 코드의 사용 예는 다음과 같습니다:

1. 사용자의 키보드 입력을 받아 처리할 때.
2. 파일의 내용을 프로그램으로 파이프라인하여 처리할 때.
3. 다른 프로그램의 출력을 이 프로그램으로 파이프라인하여 처리할 때.

예시:

- 터미널에서 직접 입력을 받는 경우:

 

  echo "3 4" | node your_script.js



  이 경우, "3 4"가 `/dev/stdin`을 통해 스크립트로 전달됩니다.

- 다른 파일의 내용을 읽어 처리하는 경우:

  cat input.txt | node your_script.js



  여기서 `input.txt` 파일의 내용이 `/dev/stdin`을 통해 스크립트로 전달됩니다.

이러한 방식은 스크립트가 비동기적 입력 처리보다는 동기적인 데이터 처리에 적합할 때 유용합니다.

'Algorithm' 카테고리의 다른 글

배열을 역순으로 정렬하기  (0) 2022.05.02
신고 결과 받기  (0) 2022.04.19
숫자 문자열과 영단어  (0) 2022.04.13
Binary Search (이진검색)  (0) 2021.12.22
Comments