我正在尝试将本地zip
文件解压缩到node.js中的变量中,如:
var d;
var fs = require('fs');
var zlib = require('zlib');
var zipPath='../../data/lemma/lemmatization-en.zip';
var zipExists=fs.existsSync(zipPath);
console.log(zipPath,zipExists);
fs.createReadStream(zipPath)
.on('data', function (data){
d+=data.toString();
})
.on('end', function (){
console.log("read",d.length);
zlib.inflate(d, {},function(err, buf) {
console.error(err)
console.log("unzip",buf.toString());
})
})
文件为here,它是常规的zip存档。
当我运行此操作时,出现Error: incorrect header check
错误。尝试使用管道时出现相同的错误:
fs.createReadStream(zipPath)
.pipe( zlib.createUnzip() )
.on('data', function (data){
d+=data.toString();
})
.on('end', function (){
console.log("read",d.length);
})
我知道npm
上有非本机模块,但我想保持简单,只使用zlib
本机模块。
我的目标是读取流并将其加载到内存中,因为此文件必须在某些时候延迟加载到代码中。