JavaScript에서 줄 단위로 파일 읽기
- 일반 JavaScript를 사용하여 JavaScript에서 한 줄씩 로컬 파일 읽기
-
Node.js
readline
모듈을 사용하여 JavaScript에서 로컬 파일 읽기 -
Node.js의
line-reader
모듈을 사용하여 JavaScript에서 로컬 파일 읽기
이 기사에서는 Vanilla JS 및 JavaScript 프레임워크 Node.js를 사용하여 JavaScript를 사용하여 파일을 읽는 방법을 소개합니다.
일반 JavaScript를 사용하여 JavaScript에서 한 줄씩 로컬 파일 읽기
HTML 입력으로 넣은 로컬 파일을 읽는 간단한 JavaScript 함수를 만들 수 있습니다.
input
HTML 태그를 사용하여 파일을 업로드하고 FileReader()
함수를 사용하여 파일의 내용을 한 줄씩 읽을 수 있습니다.
코드 예:
<input type="file" name="file" id="file" />
document.getElementById('file').onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(progressEvent) {
console.log(this.result);
};
reader.readAsText(file);
};
여기에서 입력 필드는 getElementById
메소드에 의해 선택되며, 이는 변경될 때마다(파일이 선택될 때마다) 기능을 트리거합니다. FileReader()
개체의 새 인스턴스를 만듭니다. 인스턴스 reader.onload
가 트리거되면 progressEvent
매개변수가 있는 함수가 호출되고 콘솔에 파일의 전체 내용을 console.log(this.result)
로 인쇄할 수 있습니다.
아래와 같이 파일 내용을 한 줄씩 읽도록 함수를 확장할 수 있습니다.
document.getElementById('file').onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(progressEvent) {
var fileContentArray = this.result.split(/\r\n|\n/);
for (var line = 0; line < lines.length - 1; line++) {
console.log(line + ' --> ' + lines[line]);
}
};
reader.readAsText(file);
};
이전 방법의 확장된 스니펫은 split()
을 사용하여 결과 변수에서 읽은 내용을 분할하고 fileContentArray
변수 배열에 저장합니다. 그런 다음 for
루프를 사용하여 fileContentArray
변수의 각 줄을 반복하고 파일 내용을 한 줄씩 인쇄합니다.
테스트 목적으로 다음 내용이 포함된 demo.txt
파일을 만듭니다.
Line 1
Line 2
Line 3
Line 5
이제 파일에 5개의 줄이 있는 것을 볼 수 있으며 HTML Input 요소에서 파일을 업로드하면 아래 출력과 같이 파일의 내용을 볼 수 있습니다.
출력:
1 --> Line 1
2 --> Line 2
3 --> Line 3
4 -->
5 --> Line 5
파일의 줄 번호를 시각화하는 것과 같이 1 -->
내용은 무시할 수 있습니다.
Node.js readline
모듈을 사용하여 JavaScript에서 로컬 파일 읽기
이 방법을 사용하려면 Node가 설치되어 있는지 확인해야 합니다. 터미널 또는 명령 프롬프트에 node -v
를 입력하여 확인할 수 있습니다. 이제 readline
모듈을 사용하여 파일 내용을 쉽게 읽을 수 있습니다. app.js
파일을 만들고 app.js
파일의 첫 번째 줄에서 아래와 같이 모듈을 가져옵니다.
const readline = require('readline');
const fs = require('fs');
readline
모듈은 Node.js에 내장되어 있으므로 명시적으로 설치하지 않습니다. fs
모듈을 사용하여 읽을 수 있는 스트림을 만들 수 있습니다. readline
모듈은 Readable Streams와만 호환되기 때문입니다.
예제 코드:
const readLine = require('readline');
const f = require('fs');
var file = './demo.txt';
var rl = readLine.createInterface(
{input: f.createReadStream(file), output: process.stdout, terminal: false});
rl.on('line', function(text) {
console.log(text);
});
app.js
파일을 demo.txt
파일과 동일한 폴더에 저장하고 node app.js
명령으로 실행할 수 있습니다.
출력:
Line 1
Line 2
Line 3
Line 5
Node.js의 line-reader
모듈을 사용하여 JavaScript에서 로컬 파일 읽기
Node.js line-reader
모듈을 사용하여 JavaScript에서 파일을 읽을 수 있습니다. 모듈은 오픈 소스이며 npm install line-reader --save
또는 yarn add line-reader
명령을 사용하여 설치해야 합니다.
line-reader
모듈을 사용하여 파일의 내용을 읽는 것은 eachLine()
메소드를 제공하기 때문에 쉽습니다. 파일을 한 줄씩 읽을 수 있습니다. app.js
파일 상단에서 const lineReader = require('line-reader')
로 가져올 수 있습니다.
eachLine()
메서드는 두 개의 인수가 있는 콜백 함수를 사용합니다. 인수는 line
및 last
입니다. line
옵션은 내용을 저장하고 last
옵션은 읽은 줄이 파일의 마지막 줄인지 알려줍니다. 두 번째 옵션은 부울 값을 나타냅니다.
예제 코드:
const lineReader = require('line-reader');
lineReader.eachLine('./demo.txt', (line, last) => {
console.log(line);
})
app.js
파일을 demo.txt
파일이 있는 폴더에 저장하거나 파일의 경로를 명시적으로 설정할 수 있습니다. 그러면 파일 내용을 한 줄씩 읽어서 다음 위치로 출력을 인쇄합니다. 콘솔.
출력:
Line 1
Line 2
Line 3
Line 5