2014-03-05 52 views
0

node.js中似乎並沒有對文件的ReadLine()方法,I/O,所以我不得不做手工拆分:結果中包含「未定義」

fn='test.txt'; 

fs.readFile(fn, 'utf8', function (err,data) { 
    if (err) { 
    return console.log(err); 
    } 
    var array = data.toString().split('\n'); 
    console.log(array); 
}); 

文件test.txt包含3行:

a 
b 
c 

內容後ç(沒有額外的新行)右停止。但我得到的輸出如下:

[ 'a', 'b', 'c', '' ] 

這使我困惑。任何人都可以幫助我?

+1

這個問題的標題似乎並不匹配。 ''''不等於'undefined'。我相信,你發現是EOF或換行符.. – MjrKusanagi

回答

2

''不是不確定的,和文本文件一般用回車結束,因爲它是一個行終止。

"a\nb\nc\n".split("\n") 

在最後的\n末尾有一個空字符串。

可以切成其關閉(console.log(array.slice(0, -1))),但忽略空行可能更合適。

+0

確實如此。雖然我明確沒有appende後「C」的vim任何多餘的字符仍然設法增加一個行終止。有趣。 –

+0

@YandongLiu:是的,這是真正的文本格式正確。這是一個行終止符,而不是行分隔符,所以vim默認寫一個。 – Ryan

+0

謝謝@minitech。還用Python進行了驗證。 –