gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 23:16:35 26 4
gpt4 key购买 nike

我以前从来没有这样做过,所以这可能是非常基本的事情,但我想我还是会问。

在 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 - 如何在 Node.js 中读取非常大(> 1GB)的 tar.gz 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11076311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com