muszę przeanalizować pliku linia po linii w następującym formacie z node.js:czytano wiersze z pliku synchronicznie w 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
To przedstawia wykres. Pierwsze dwie linie to liczba krawędzi i wierzchołków, a następnie krawędzie.
mogę wykonać zadanie z czymś takim:
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();
})
rozumiem tego rodzaju rzeczy nie może być to, co uważano za node.js, ale kaskadowo if
w line
zwrotnego nie bardzo elegancki wygląd/czytelne dla mnie.
Czy istnieje sposób na odczyt synchronicznie linii ze strumienia, jak w każdym innym języku programowania?
Jestem otwarty na używanie wtyczek, jeśli nie ma wbudowanego rozwiązania.
[EDIT]
Przepraszam, powinienem doprecyzować, że Chciałbym uniknąć załadowanie całego pliku w pamięci wcześniej
https://nodejs.org/api/fs.html#fs_fs_readfilesync_file_options –
tak ładować go 'fs.readFileSync' a następnie analizować je z kodem synchronicznie po rozdzieleniu znakami nowej linii tj' linie = fs.readFileSync ('graph.txt'). split (/ [\ n \ r] /); ' –