如何使用NodeJS逐行读取一个2G的文件?

在Node.js中,逐行读取大文件(例如2GB或更大的文件)时,最好使用流(Streams),因为它们允许你以较小的数据块处理数据,从而避免一次性加载整个文件到内存中。这对于处理大文件特别重要,因为它可以防止程序因内存不足而崩溃。

以下是一个使用Node.js的readline模块逐行读取大文件的示例:

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

async function processLineByLine() {
  const fileStream = fs.createReadStream('path/to/your/large/file.txt');

  const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity
  });

  for await (const line of rl) {
    // 在这里处理每一行数据
    console.log(line);
  }
}

processLineByLine();

在这个示例中,我们首先使用fs.createReadStream方法创建一个指向要读取的文件的可读流。然后,我们使用readline.createInterface方法创建一个readline.Interface实例,该实例将从提供的可读流中读取数据。

for await...of循环用于异步迭代通过readline.Interface读取的每一行数据。在循环体内,你可以根据需要处理每一行数据。在这个示例中,我们只是简单地将每一行数据打印到控制台。

请注意,你需要将'path/to/your/large/file.txt'替换为你要读取的实际文件的路径。

posted @   王铁柱6  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示