gpt4 book ai didi

Javascript 读取大文件失败

转载 作者:行者123 更新时间:2023-12-01 10:28:47 25 4
gpt4 key购买 nike

一个 JSON 文件是 6 GB。用下面的代码读取时,

var fs = require('fs');
var contents = fs.readFileSync('large_file.txt').toString();

它有以下错误:

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)

有人可以帮忙吗?

最佳答案

Buffer 的最大大小约为 2GB(来源:https://nodejs.org/api/buffer.html#buffer_buffer_kmaxlength),readFileSync() 在内部使用它来保存文件数据。

您可能需要一个流式 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);
});

关于Javascript 读取大文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44994767/

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