[JS] readline에 대해

오찬주·2024년 7월 28일

JAVASCRIPT

목록 보기
8/8
post-thumbnail

프로그래머스에서 문제를 풀다보면 readline 에 대한 코드가 주어질 때가 있다.

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

rl.on('close', function () {
     console.log('!@#$%^&*(\\\'"<>?:;')
    
});

like this...

이게 무엇인지 좀 알아보려고 한다.


readline?

Readable Stream 에서 한 번에 한 줄 씩 데이터를 읽기 위한 인터페이스를 제공하는 모듈

즉, 데이터를 읽기 위해 인터페이스를 제공해주는 모듈로 한 번에 한 줄씩 데이터 스트림을 읽는 방법을 제공한다.

사용 순서는 다음과 같다.

readline 모듈 불러오기 -> readline 인터페이스 생성 -> 입출력 처리하기

readline을 불러오기 위해서는

const readline = require('readline');

readline 인터페이스 생성은

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

입출력 처리는

rl.on("line", (line) => {
  	/*입력값 처리 코드*/
	rl.close();
});

rl.on("close", () => {
  	/*입력 이후 실행 코드*/
	process.exit();
});

다음과 같다.

line은 입력받은 값을 한 줄씩 읽어 문자열 타입으로 전달하는 이벤트고,
close는 더 이상 입력값이 없을 경우에 해당하는 이벤트다.

rl.close를 이용하여 무한히 입력받음을 방지하고, 입력이 종료되면 process.exit을 통해 프로세스가 종료된다!!


코드 실행

var readline = require('readline');
var fs = require('fs');

var myInterface = readline.createInterface({
  input: fs.createReadStream('demofile1.html')
});

var lineno = 0;
myInterface.on('line', function (line) {
  lineno++;
  console.log('Line number ' + lineno + ': ' + line);
});

다음과 같은 코드를 실행하면

Line number 1: <!DOCTYPE html>
Line number 2: <html>
Line number 3: <title>Demo - Open file</title>
Line number 4: <body>
Line number 5: <h1>My Header</h1>
Line number 6: <p>My paragraph</p>
Line number 7: </body>
Line number 8: </html>

이렇게 출력이 된다.

구웃뜨


참고

profile
프론트엔드 엔지니어를 희망합니다 :-)

0개의 댓글