我如何在gzip中读取json文件?

时间:2015-06-10 20:51:16

标签: node.js gzip

存档格式为gzip。有json文件。我们需要依次获取每个文件,与其相关以及在另一个gzip中编写的内容。我意识到我需要使用标准库createReadStream和zlib。

1 个答案:

答案 0 :(得分:4)

嗯,按照https://nodejs.org/api/zlib.html#zlib_examples的示例,可以对单个gzip压缩文件执行以下过程:

var unzip = zlib.createUnzip();
var fs = require('fs');
var inp = fs.createReadStream('input.json.gz');
var out = fs.createWriteStream('output.json');

inp.pipe(unzip).pipe(out);

但是如果gzip中有多个文件,我不确定如何做到这一点。我找不到文档来做到这一点,我发现多个文件可以从节点中的gzip文件解压缩的唯一方法是它们是否首先是tar。可以在here找到在节点中解压缩tar.gz的过程。在这个例子之后,人们可以这样做:

var unzip = zlib.createUnzip();
var fs = require('fs');
var tar = require('tar-fs');
var inp = fs.createReadStream('input.tar.gz');
var out = './output'; // output directory

inp.pipe(unzip).pipe(tar.extract(out));