逐行读取gzipstream

我有一个压缩的gzip文件,我想逐行阅读。

var fs = require('fs') var zlib = require('zlib') var gunzip = zlib.createGunzip() var inp = fs.createReadStream('test.gz') var n = 0 var lineProcessing = function (err, data) { if (!err) { n += 1 console.log ("line: " + n) console.log (data.toString()) } } inp .on('data', function (chunk) { zlib.gunzip (chunk, lineProcessing) }) .on('end', function () { console.log ('ende'); }); 

我想我需要设置zlib.createGunzip chunksize,我只读直到下一个\n 。 但是如何dynamic确定呢?

这可能会更容易使用readline

 const fs = require('fs'); const zlib = require('zlib'); const readline = require('readline'); let lineReader = readline.createInterface({ input: fs.createReadStream('test.gz').pipe(zlib.createGunzip()) }); let n = 0; lineReader.on('line', (line) => { n += 1 console.log("line: " + n); console.log(line); });