📜  如何从 node.js 中的文件返回行数组?(1)

📅  最后修改于: 2023-12-03 14:51:45.740000             🧑  作者: Mango

如何从 node.js 中的文件返回行数组?

在 Node.js 中,我们可以使用内置的 fs 模块读取文件。如果我们想要将文件的每一行作为一个数组返回,该怎么做呢?本文将向您展示如何实现这一目标。

使用 readFile 和 split 方法

我们可以使用 fs.readFile 方法从文件中读取数据,然后使用 split 方法将其分割成一个行数组。下面是代码示例:

const fs = require('fs');

fs.readFile('path/to/file', 'utf8', (err, data) => {
  if (err) throw err;
  const arrayOfLines = data.split('\n');
  console.log(arrayOfLines);
});

在上面的代码中,我们首先导入 fs 模块,然后使用 readFile 方法读取文件的内容。接着,我们使用回调函数处理读取到的数据,在回调函数中使用 split 方法将其分割成一个行数组。

使用 createReadStream 和 readline 模块

如果文件比较大,我们可能无法一次将其全部读入内存中。这时,我们可以使用 createReadStream 方法和 readline 模块,逐行读取文件数据。下面是代码示例:

const fs = require('fs');
const readline = require('readline');

const lineReader = readline.createInterface({
  input: fs.createReadStream('path/to/file')
});

const arrayOfLines = [];

lineReader.on('line', line => {
  arrayOfLines.push(line);
});

lineReader.on('close', () => {
  console.log(arrayOfLines);
});

在上面的代码中,我们首先导入 fs 模块和 readline 模块。然后,我们使用 createInterface 方法创建一个逐行读取的对象。我们将读取的行放到一个数组中,并在读取结束后输出该数组。

总结

本文向您介绍了如何从文件中读取行数组的两种方法。第一种方法使用 readFilesplit 方法,第二种方法使用 createReadStreamreadline 模块。您可以根据自己的场景选择其中一种方法。