
프로그래머스에서 문제를 풀다보면 readline 에 대한 코드가 주어질 때가 있다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('close', function () {
console.log('!@#$%^&*(\\\'"<>?:;')
});
like this...
이게 무엇인지 좀 알아보려고 한다.
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>
이렇게 출력이 된다.
구웃뜨