Lan*_*ard 11 javascript file-io file filestream node.js
我以前从来没有这样做过,所以这可能是非常基本的东西,但我想我还是会问.
在Node.js中读取非常大的文件的正确方法是什么?假设文件太大而无法一次读取.也可以说该文件可以作为格式.zip或.tar.gz格式.
第一个问题,最好首先解压缩文件并将其保存到磁盘(我现在在Mac上使用Stuffit来执行此操作),然后使用该文件?或者您可以直接从压缩版.zip或.tar.gz版本中读取IO流吗?我想你需要知道压缩文件中内容的格式,所以你可能要解压缩(刚发现这个.tar.gz文件实际上是一个.dat文件)...
那么主要的问题是,如何在Node.js中读取这个大文件?假设它是一个1GB的XML文件,我应该在哪里开始解析它?(不是,如何解析XML,但如果你逐行读取大文件,你如何解析像XML这样需要知道前一行上下文的东西).
我已经看过了fs.createReadStream,但我不敢乱用它......不想爆炸我的电脑.只是寻找正确方向的一些指针.
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4167 次 |
| 最近记录: |