javascript – 如何在Node.js中读取非常大的(> 1GB)tar.gz文件?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在Node.js中读取非常大的(> 1GB)tar.gz文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从来没有这样做,所以这可能是一个真正的基础,但我以为我会问.

在Node.js中读取一个非常大的文件的正确方法是什么?说文件太大,无法一次读取.也可以说这个文件可以是.zip或.tar.gz格式.

第一个问题是,最好先解压缩文件并将其保存到磁盘(我现在在Mac上使用Stuffit来执行),然后使用该文件?或者你可以直接从压缩的.zip或.tar.gz版本中读取IO流?我想你需要知道压缩文件内容的格式,所以你可能需要解压缩(只是发现这个.tar.gz文件实际上是一个.dat文件)…

那么主要的问题是,如何在Node.js中读取这个大文件?说这是一个1GB的XML文件,我应该在哪里开始解析它? (不,如何解析XML,但是如果你逐行阅读大文件,那么你如何解析像需要知道前一行的上下文的XML).

我已经看到了fs.createReadStream,但我害怕混乱,不想爆炸我的电脑.只要找正确方向的指针.

解决方法

内置的 zlib模块用于流解压缩,sax用于流XML解析
var fs = require('fs');
var zlib = require('zlib');
var sax = require('sax');

var saxStream = sax.createStream();
// add your xml handlers here

fs.createReadStream('large.xml.gz').pipe(zlib.createUnzip()).pipe(saxStream);

猜你在找的JavaScript相关文章