tôi cần phải phân tích một dòng tập tin bằng cách dòng trong các định dạng sau đây với Node.js:đọc dòng đồng bộ từ tập tin trong 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
Nó đại diện cho một đồ thị. Hai dòng đầu tiên là số cạnh và đỉnh, tiếp theo là các cạnh.
tôi có thể hoàn thành nhiệm vụ với một cái gì đó như:
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();
})
Tôi hiểu loại này điều có thể không phải những gì Node.js được suy nghĩ, nhưng cascaded if
trong line
gọi lại không thực sự trông thanh lịch/có thể đọc được với tôi.
Có cách nào để đọc các dòng đồng bộ từ luồng như trong mọi ngôn ngữ lập trình khác không?
Tôi đang mở để sử dụng plugin nếu không có giải pháp tích hợp.
[EDIT]
Xin lỗi, tôi đã làm nên rõ ràng hơn rằng Tôi muốn tránh tải toàn bộ tập tin trong bộ nhớ trước
https://nodejs.org/api/fs.html#fs_fs_readfilesync_file_options –
có tải nó với 'fs.readFileSync' và sau đó phân tích nó với mã của bạn đồng bộ sau khi chia tách bằng dòng mới tức là 'dòng = fs.readFileSync ('graph.txt'). split (/ [\ n \ r] /); ' –