📜  节点读取文件行 - Javascript (1)

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

节点读取文件行 - Javascript

在Javascript中,读取文件的操作是一个常见需求。其中,对于大型文件,我们可能需要一次读取一行,而不是把整个文件读入内存。本文介绍如何使用Node.js在Javascript中读取文件行。

步骤一:打开文件

我们可以使用Node.js内置的fs模块打开文件,具体函数是fs.createReadStream。如下所示:

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

const rl = readline.createInterface({
    input: fs.createReadStream('example.txt')
});

此处将文件example.txt传递给fs.createReadStream,这将返回一个可读流。为了逐行读取文件,我们使用readline模块创建输入输出接口。我们将rl变量设置为readline.createInterface的返回值,该方法的第一个参数接收一个可读流。

步骤二:逐行读取文件

我们可以使用readline模块中的on方法来逐行读取文件内容。如下所示:

rl.on('line', (line) => {
    console.log(`Line from file: ${line}`);
});

上面的代码将打印文件中的每一行。

步骤三:关闭文件

完成读取文件之后,需要关闭输入输出接口。我们可以通过rl.close()完成。如下所示:

rl.on('close', () => {
    console.log('File has been read');
    // 关闭文件
    rl.close();
});

完整代码片段:

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

const rl = readline.createInterface({
    input: fs.createReadStream('example.txt')
});

rl.on('line', (line) => {
    console.log(`Line from file: ${line}`);
});

rl.on('close', () => {
    console.log('File has been read');
    rl.close();
});

这样就可以顺序逐行读取文件了。

以上是在JavaScript中使用Node.js逐行读取文件的一个简单教程。总结来说,我们使用fs模块创建可读流,使用readline模块逐行读取文件,并完成后关闭输入输出接口。