21xrx.com
2024-09-19 10:03:05 Thursday
登录
文章检索 我的文章 写文章
Node.js实现文件按行读取
2023-07-12 16:12:49 深夜i     --     --
Node js 文件 按行读取

Node.js是一款运行在服务器端的JavaScript运行时环境,它的使用越来越广泛,被广泛应用于Web开发、网络爬虫、实时通信等领域。除此之外,Node.js也是一款非常强大的文件系统处理工具,可以方便地读取和处理文件,本文将介绍如何使用Node.js实现文件按行读取。

Node.js中使用fs模块来读取文件。fs模块提供了多种读取文件的方法,例如fs.readFile()直接读取整个文件、fs.createReadStream()读取大文件等等。其中,fs.readFileSync()是同步读取文件的方法,而fs.readFile()是异步读取文件的方法。

下面是使用fs.readFileSync()实现文件按行读取的代码:


const fs = require('fs');

const readline = require('readline');

const readLineByLine = (file) => {

 const fileStream = fs.createReadStream(file);

 const rl = readline.createInterface(

  input: fileStream);

 rl.on('line', (line) => {

  console.log(`Line from file: ${line}`);

 });

};

readLineByLine('test.txt');

首先引入了fs和readline模块,然后定义了一个函数readLineByLine(),它接受一个文件路径作为参数。

在函数中首先创建了文件读取流fileStream,然后使用readline.createInterface()创建了一个readline对象rl,实现了逐行读取的功能。其中,crlfDelay选项指定了行结束符的标志(\n、\r、\r\n等),Infinity表示单纯根据\n来判断。

最后,在rl.on('line')回调函数中将读取到的每一行数据输出到控制台上。

使用上述代码即可实现文件按行读取的功能。如果想要使用fs.readFile()实现异步读取文件,只需将代码稍微修改即可:


const fs = require('fs');

const readline = require('readline');

const readLineByLine = (file) => {

 fs.readFile(file, 'utf8', (err, data) => {

  if (err) throw err;

  const lines = data.split(/\r?\n/);

  lines.forEach((line) => {

   console.log(`Line from file: ${line}`);

  });

 });

};

readLineByLine('test.txt');

这里使用了fs.readFile()方法读取文件,该方法接受两个参数:文件路径和字符编码('utf-8')。当读取文件完成后,将文件内容按行分割,并使用forEach()遍历每一行数据,并将其输出到控制台上。

以上就是使用Node.js实现文件按行读取的方法。通过fs模块和readline模块的配合使用,可以轻松地实现文件的逐行读取,从而为我们在文件处理过程中提供了很大的便利。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复