假设您有许多长文本文件,您只需要从每个文件的第一行提取数据(无需阅读任何进一步的内容)。 Node JS 中最好的方法是什么?
谢谢!
原文由 Pensierinmusica 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设您有许多长文本文件,您只需要从每个文件的第一行提取数据(无需阅读任何进一步的内容)。 Node JS 中最好的方法是什么?
谢谢!
原文由 Pensierinmusica 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于这种情况几乎有一个内置模块 - readline
。它避免弄乱块等。代码如下所示:
const fs = require('fs');
const readline = require('readline');
async function getFirstLine(pathToFile) {
const readable = fs.createReadStream(pathToFile);
const reader = readline.createInterface({ input: readable });
const line = await new Promise((resolve) => {
reader.on('line', (line) => {
reader.close();
resolve(line);
});
});
readable.close();
return line;
}
原文由 Viktor Molokostov 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
我最终采用了这个解决方案,这似乎是迄今为止我见过的性能最高的解决方案:
为了方便起见,我创建了一个 npm 模块,命名为“ firstline ”。
感谢@dandavis 建议使用
String.prototype.slice()
!