Node.js 相对较新。尝试使用流。
我正在寻找一个包含数字(换行符分隔)的大文件并对其进行排序。我已经按照这里的方法(方法#5,实际上在这个线程中引用)对我的文件进行了排序,并试图调整它以从排序的数据中返回前 X 行(var request = 5
在下面的代码中仅用于测试)。我想在写入数据后显示这些。
var fs = require('fs'),
util = require('util'),
spawn = require('child_process').spawn,
sort = spawn('sort', ['-nr','../data/data.txt']),
writer = fs.createWriteStream('output.txt');
var start = Date.now();
var output = 'output.txt';
var request = 5;
var lineCount = 0;
var numbers;
var selection = [];
sort.stdout.on('data', function(data) {
lineCount ++
numbers = data.toString()
// data.toString()
.split('\n')
.sort((a, b) => b-a)
selection = numbers.slice(0, request)
//
// .forEach(record => writer.write(record + '\n'))
},
)
sort.on('exit', function(code) {
if (code) {
// handle error
console.log(code);
}
// writer.end()
// console.log(lineCount);
let array = numbers.slice(0, request);
console.log(selection);
var closetime = Date.now();
console.log('Time. ', (closetime -start) /1000, ' secs');
});
sort.stderr.on('data', function(data) {
// handle error...
console.log('stderr: ' + data);
});
.on('data'
无论我将代码放在该部分还是在该部分中,我都无法让它工作.on('exit'
。有什么建议么?
我确实在 Stack Overflow 上引用了大量线程,包括这个、这个、这个关于通过 nodejs 读取特定行,通过 Nodejs读取前两行的线程。
最后一个听起来应该是我需要的,但我无法让它在我的代码中工作。