Nodejs:以字符串形式读取大文件并使用掩码在其中查找某些字符串
Nodejs: Reading in a large file as a string and looking for certain strings within using a mask
我希望能够将大文件(大于 1GB)作为字符串读入 node.js(我不太关心效率),一旦完成,我希望能够使用掩码搜索文件,例如 FILE_XXX_XXXX_XXXXXXXX、
X 是任何字符并将结果存储在数组中。目前我的方法是简单地使用
读入文件
fs.readFileSync(srcPath, 'utf8');
然而,这会导致错误
错误:无法创建长度超过 0x3fffffe7 个字符的字符串
我环顾四周并知道 "piping" 但不确定如何实现它(或者它是否适合我想做的事情)
你要找的是fs.createReadStream:
const fs = require('fs');
const readStream = fs.createReadStream('myfile.txt');
readStream
.on('data', function(chunk) {
// check if chunk.toString() contains what you're looking for here
})
.on('end', function () {
console.log('done');
});
您可以使用正则表达式来匹配您的掩码,请参阅 https://regexr.com/
我希望能够将大文件(大于 1GB)作为字符串读入 node.js(我不太关心效率),一旦完成,我希望能够使用掩码搜索文件,例如 FILE_XXX_XXXX_XXXXXXXX、
X 是任何字符并将结果存储在数组中。目前我的方法是简单地使用
读入文件
fs.readFileSync(srcPath, 'utf8');
然而,这会导致错误
错误:无法创建长度超过 0x3fffffe7 个字符的字符串
我环顾四周并知道 "piping" 但不确定如何实现它(或者它是否适合我想做的事情)
你要找的是fs.createReadStream:
const fs = require('fs');
const readStream = fs.createReadStream('myfile.txt');
readStream
.on('data', function(chunk) {
// check if chunk.toString() contains what you're looking for here
})
.on('end', function () {
console.log('done');
});
您可以使用正则表达式来匹配您的掩码,请参阅 https://regexr.com/