2016-12-13 2 views
0

저는이 자바 스크립트가 처음이므로 간단한 질문을합니다. Node.js를 사용하여 다음 형식의 파일을 읽습니다.파일을 읽고 'EOF'를 피하는 방법?

NAME : noname 
TYPE : filetype 
lines : 15000 
1 24 12 
2 12 33 
3 63 00 
4 .. .. 
.............. 
150000 16 91 
EOF 
'an empty line here' 

내 코드

var fs = require('fs'); 
if (fs.existsSync(filepath)) 
{ 
    var data_array = fs.readFileSync(filepath).toString().split("\n"); 

    //to check if it is reading correctly 
    console.log(data_array[0]); 
    console.log(data_array[1]); 
    console.log(data_array[2]); 
    console.log(data_array.length.toString()); 

} 

하지만 난 그것도 'EOF'라인과 그 이후의 빈 줄을 읽는 것을 깨달았다. 'EOF'에 도달하면 중지하고 싶습니다.

어떻게 수행하나요?

+0

배열의 마지막 요소를 간단히 제거 할 수 있습니다. 하지만 200 개의 파일을 읽었을 때 마지막 빈 줄이없는 파일이 40 개 있기 때문에 나는 그걸 가지 않을 것입니다. 간단하고 너무 엄격하지 않게하십시오. 빈 줄은 무시하십시오. – DanFromGermany

+0

@DanFromGermany 또한 'EOF'를 읽습니다. 예, 배열에서 2 줄의 마지막 줄을 제거하는 것이 가장 간단 합니다만,이 마지막 두 줄을 피하는 간단한 해결책이 있는지 궁금합니다. – arslan

+0

가장 좋은 방법은 작업 할 수있는 정보 만 사용하고 나머지는 무시하는 스크립트를 작성하는 것입니다. – DanFromGermany

답변

0

"EOF"가 비즈니스 논리에서 중요한 요소이고 그 이후에 "무언가"를 무시해야하는 경우 사용자 지정 코드가 필요합니다. 그러나 파일 및 노드의 파일 판독기 코드는 명시 적으로 추가하지 않고도 파일에서 사용할 수있는 EOF 마커를 자동으로 감지합니다. 그것이 충분하다면 실제로 EOF를 포함한 모든 것을 꺼내 표준 절차를 따르십시오.

Javascript의 경험 수준에 대한 자신의 경고에 따라 간단하고 단순하지만 보일 수도 있습니다.

희망이 도움이됩니다.

+0

나는 그가 "EOF"라는 문자열을 가지고 있다고 생각한다. 진짜 EOF라면 그 이후에는 아무런 공백이 없기 때문입니다. – DanFromGermany

관련 문제