我有一个巨大的(~1.5 gig)文本文件,可以用'fs'读取它,它让我回复了这个错误:
RangeError
RangeError: length > kMaxLength
at new Buffer (buffer.js:242:21)
at fs.js:130:16
at Object.oncomplete (fs.js:297:15)
以下是我的代码的一部分:
var fs = require('fs');
fs.readFile('file.txt', 'ASCII', function (err, data) {
console.log(data)
});
即使我使用此命令,它也会让我失误:node --max-old-space-size = 8000 file.js 欢迎任何建议:) 谢谢!
答案 0 :(得分:4)
即使是64位安装,也无法将内存限制增加到超过~1.7GB(32位为~1GB)。请参阅FAQ。因此,您无法将--max-old-space-size
设置为超出此限制。
您可以使用streaming read接口来代替文件吗?
答案 1 :(得分:0)
JohnnyHK提到,using streams是正确的解决方案。使用fs.createReadStream从文件系统创建流:
fs.createReadStream('file.txt', {encoding: 'ASCII'}).pipe(process.stdout)