我需要解析的文件裏逐行在以下格式的Node.js:從文件中讀取同步線的Node.js
13
13
0 5
4 3
0 1
9 12
6 4
5 4
0 2
11 12
9 10
0 6
7 8
9 11
5 3
它代表了一個曲線圖。前兩行是邊和頂點的數量,後面是邊。
我可以像完成任務:
var fs = require('fs');
var readline = require('readline');
var read_stream = fs.createReadStream(filename);
var rl = readline.createInterface({
input: read_stream
});
var c = 0;
var vertexes_number;
var edges_number;
var edges = [];
rl.on('line', function(line){
if (c==0) {
vertexes_number = parseInt(line);
} else if (c==1) {
edges_number = parseInt(line);
} else {
edges.push(line.split(' '));
}
c++;
})
.on('end', function(){
rl.close();
})
我明白這樣的事情可能不是什麼Node.js的被認爲對的,但在line
回調級聯if
並沒有真正看起來優雅/可讀的。
有沒有一種方法可以像其他編程語言一樣同步讀取流中的行?
如果沒有內置解決方案,我打算使用插件。
[編輯]
對不起,我應該有更明確的是我想,以避免加載在內存中預先
https://nodejs.org/api/fs.html#fs_fs_readfilesync_file_options –
是用'fs.readFileSync'加載它,然後換行分割後同步與您的代碼解析它,即'線= fs.readFileSync('graph.txt')。split(/ [\ n \ r] /);' –