sup*_*idQ 3 javascript io file
JSON文件为6 GB。使用以下代码阅读时,
var fs = require('fs');
var contents = fs.readFileSync('large_file.txt').toString();
Run Code Online (Sandbox Code Playgroud)
它具有以下错误:
buffer.js:182
throw err;
^
RangeError: "size" argument must not be larger than 2147483647
at Function.Buffer.allocUnsafe (buffer.js:209:3)
at tryCreateBuffer (fs.js:530:21)
at Object.fs.readFileSync (fs.js:569:14)
at Object.<anonymous> (/home/readHugeFile.js:4:19)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
最大尺寸的Buffer
,这是readFileSync()
内部用来存放文件数据,约为2GB(来源:https://nodejs.org/api/buffer.html#buffer_buffer_kmaxlength)。
您可能需要像这样的流式JSON解析器JSONStream
来处理文件:
const JSONStream = require('JSONStream');
const fs = require('fs');
fs.createReadStream('large_file.json')
.pipe(JSONStream.parse('*'))
.on('data', entry => {
console.log('entry', entry);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2585 次 |
最近记录: |