Node.js,使用单个readline读取多个文件

Mr.*_*r.D 1 javascript node.js

学习 Ruby on Rails 后,我还想学习 Node.JS。

在 Node.JS 中,您可以使用以下命令逐行读取文件readline

var fs = require("fs");
var readline = require("readline");

var fileName =  "input.txt";
Run Code Online (Sandbox Code Playgroud)

我们可以readline这样分配给文件:

var lineReader = readline.createInterface({
  input: fs.createReadStream(fileName)
});
Run Code Online (Sandbox Code Playgroud)

然后我们可以这样读取每一行:

lineReader.on('line', function(line) {
   // handle line code here
});
Run Code Online (Sandbox Code Playgroud)

这将允许我只读取单个文件。

如果我有这样的文件名数组:

var fileNames = ["input1.txt", "input2.txt", "input3.txt"];
Run Code Online (Sandbox Code Playgroud)

我想读取该数组中每个文件的每一行并处理它们的line事件。

如何逐行读取多个文件?

ome*_*itz 5

只需循环数组,创建一个ReadStream并处理line事件:

var fileNames = ["input1.txt", "input2.txt", "input3.txt"];
var lineReader = [];

for(var x in fileNames) {
    var fileName = fileNames[x];

    lineReader[x] = readline.createInterface({
        input: fs.createReadStream(fileName)
    });

    lineReader[x].on('line', function(line) {
        // handle line of every fileName
    });
}
Run Code Online (Sandbox Code Playgroud)

  • 我们可以读取所有文件中的第一行,然后读取所有文件中的第二行,依此类推吗?这将是一个更有用的现实生活场景。谢谢 (2认同)