如何在node.js中逐行读取文件并存入数组

5
我需要能够读取一个简单的文本文件,其中每行都包含一系列数字。
这些数字需要被读取并存储在我的代码中,所以我认为数组是最好的选择。一旦数组存储了这些值,我就可以用它进行进一步的操作,但我似乎无法从文本文件的每一行读取和将值推入我的数组中。
怎么做才是最好的方法?非常感谢您的帮助!谢谢!

干杯 https://dev59.com/NGw15IYBdhLWcg3wGn5c - Hasan Huseyin Ozkaya
response.split("\n") - Jonas Wilms
2个回答

13
var fs = require('fs');
var readline = require('readline');
var stream = require('stream');

var instream = fs.createReadStream('./test.txt');
var outstream = new stream;
var rl = readline.createInterface(instream, outstream);

var arr = [];

rl.on('line', function(line) {
  // process line here
  arr.push(line);
});

rl.on('close', function() {
  // do something on finish here
  console.log('arr', arr);
});

这种方法还可以处理大型文本文件。 https://coderwall.com/p/ohjerg/read-large-text-files-in-nodejs


在函数里面有没有一种方法可以返回数组,而不是将其记录到控制台上? - Dianne

2

请查看这个答案.

以下是该答案提出的解决方案:

var lineReader = require('readline').createInterface({
  input: require('fs').createReadStream('file.in')
});

lineReader.on('line', function (line) {
  console.log('Line from file:', line);
});

该功能已添加到Node文档中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接