问题内容
我正在尝试一次一行读取一个大文件。我在 Quora 上发现了一个涉及该主题的问题,但我缺少一些联系来使整个事情融为一体。
var Lazy=require("lazy");
new Lazy(process.stdin)
.lines
.forEach(
function(line) {
console.log(line.toString());
}
);
process.stdin.resume();
我想弄清楚的是如何从文件中一次读取一行,而不是像本示例中那样从 STDIN 中读取。
我尝试过:
fs.open('./VeryBigFile.csv', 'r', '0666', Process);
function Process(err, fd) {
if (err) throw err;
// DO lazy read
}
但它不起作用。我知道在紧要关头我可以重新使用 PHP 之类的东西,但我想弄清楚这一点。
我认为另一个答案不起作用,因为该文件比我运行它的服务器的内存大得多。
正确答案
自 Node.js v0.12 和 Node.js v4.0.0 起,有一个稳定的 readline核心模块。这是从文件中读取行的最简单方法,无需任何外部模块:
const fs = require('fs');
const readline = require('readline');
async function processLineByLine() {
const fileStream = fs.createReadStream('input.txt');
const rl = readline.createInterface({
input: fileStream,
crlfDelay: Infinity
});
// Note: we use the crlfDelay option to recognize all instances of CR LF
// ('\r\n') in input.txt as a single line break.
for await (const line of rl) {
// Each line in input.txt will be successively available here as `line`.
console.log(`Line from file: ${line}`);
}
}
processLineByLine();
或者:
var lineReader = require('readline').createInterface({
input: require('fs').createReadStream('file.in')
});
lineReader.on('line', function (line) {
console.log('Line from file:', line);
});
lineReader.on('close', function () {
console.log('all done, son');
});
即使没有最终的 \n
,最后一行也能正确读取(从 Node v0.12 或更高版本开始)。
更新:此示例已添加到 Node 的 API 官方文档.
以上就是在node.js中一次读取一行文件?的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 如何在 Java 中实现对正方形的缩放操作?(如何在Java中对正方形进行缩放操作)
- 如何正确使用 Java 的 join 方法?(java join方法怎么使用)
- Java 中 DecimalFormat 在哪些场景下使用较为合适?(Java DecimalFormat在哪里使用合适)
- 如何确保Redis客户端的安全性:实用技巧与最佳实践
- 在 JavaScript 中如何使用 parentNode?(javascript中的parentNode怎么用)
- 如何高效编码 Java Supplier 接口?(java supplier接口的高效编码技巧)
- 如何进行 Java NoSQL 查询优化?(java nosql查询优化怎样进行)
- Java 中 `equals()` 的核心究竟是什么?(java eques的核心是什么)
- Java代理模式的优缺点分别有哪些?(Java代理模式有哪些优缺点)
- 2024下半年北京软考成绩复查时间及流程
猜你喜欢
AI推送时光机在node.js中一次读取一行文件?
后端开发2024-02-06
Shell脚本一次读取文件中一行的2种写法
后端开发2022-06-04
Shell脚本一次读取文件中一行的方法有哪些
后端开发2023-06-09
如何在 PHP 中逐行读取一个大文件
后端开发2024-02-27
PHP从文件指针中读取一行
后端开发2024-04-02
java 逐行读取文件(读取文件每一行、按行读取文件)附带示例代码
后端开发2023-09-11
perl如何读取csv文件中的一行
后端开发2023-10-07
python怎么实现每隔一秒读取一次文件
后端开发2023-10-27
Python读取文件的最后一行(非空行)
后端开发2023-01-31
shell怎么循环读取文件每一行
后端开发2023-08-14
怎么在python中按行读取文件
后端开发2023-06-15
perl怎么读取文件的每一行内容
后端开发2024-04-02
一起聊聊在python中读取和写入CSV文件
后端开发2023-05-14
一文搞懂怎么在python中读取和写入CSV文件
后端开发2022-07-15
怎么用vbs读取文本文件的最后一行
后端开发2023-06-08
第一课:Python读取.csv文件
后端开发2023-01-31
C语言怎么对CSV文件从最后往前一行一行读取
后端开发2023-06-08
python怎么读取csv文件中的一列
后端开发2024-04-02
在 PHP 中读取文本文件
后端开发2024-02-27
咦!没有更多了?去看看其它编程学习网 内容吧