我以前从未这样做过,所以这可能是非常基础的事情,但我还是想问一下。
在 Node.js 中读取非常大的文件的正确方法是什么?假设文件太大而无法一次性读取完。另外,假设文件可能会以 .zip
或 .tar.gz
格式存在。
首先问题是,最好是先解压文件并将其保存到磁盘上(我现在在 Mac 上使用 Stuffit 来做这件事),然后再处理该文件吗?还是可以直接从压缩的 .zip
或 .tar.gz
版本中读取 IO 流?我想你需要知道压缩文件中内容的格式,所以你可能需要解压缩(刚刚发现这个 .tar.gz
文件实际上是一个 .dat
文件)...
然后主要问题是,如何在 Node.js 中读取这个大文件?假设它是一个 1GB 的 XML 文件,在解析它之前应该从哪里开始查找?(不是如何解析 XML,而是如果你按行读取大文件,如何解析类似于需要知道前几行上下文的 XML 文件)。
我看到了fs.createReadStream
,但我害怕瞎搞... 不想让电脑爆炸。只是想要一些正确方向的指针。