【发布时间】:2012-09-16 13:45:21
【问题描述】:
我正在使用 Node v.0.8.9 及其模块 readline。我无法使用fs.readFile(),因为我收到EISDIR 错误。
我想从文件中逐行读取,做一些工作,然后(当工作完成时)读取下一行。因此,我尝试了以下 sn-p(见下文),但是当使用一些同步工作更改 for 时,它不会同步运行。
var fs = require('fs');
var readline = require("readline");
var filename = process.argv[2];
readline.createInterface({
input: fs.createReadStream(filename),
terminal: false
}).on("line", function(line){
this.emit("pause", line);
}).on("pause", function(line) {
console.log("pause");
console.log(line);
console.log("doing some work");
for (var i = 0; i < 1000000000; ++i);
this.emit("resume");
}).on("resume", function() {
console.log("resume");
}).on("close", function() {
console.log("close");
});
有人能解释一下这个问题吗?
【问题讨论】:
-
该错误表明您正在尝试从目录中读取。
-
@IoannisKaradimas,不。我已经验证过了。这是因为文件太大而发生的。
-
您应该更新您的问题以反映这一点,以避免与我的评论类似的回复。另外,如果您指出文件的大小,那会很好,以防它是基于操作系统的限制或类似的东西。
标签: javascript node.js