【问题标题】:How to read a text file line by line in JavaScript?如何在 JavaScript 中逐行读取文本文件?
【发布时间】:2022-11-05 04:08:11
【问题描述】:

我需要在 JavaScript 中逐行读取文本文件。

我可能想对每一行做一些事情(例如跳过或修改它)并将该行写入另一个文件。但是具体的动作不在这个问题的范围内。

有许多类似措辞的问题,但大多数实际上是一步将整个文件读入内存,而不是逐行读取。因此,这些解决方案不适用于更大的文件。

【问题讨论】:

    标签: javascript node.js file-io


    【解决方案1】:

    逐行读取文本文件的代码确实令人惊讶地不平凡且难以发现。

    此代码使用 NodeJS 的 readline 模块逐行读取和写入文本文件。它可以处理大文件。

    const fs = require("fs");
    const readline = require("readline");
    
    const input_path = "input.txt";
    const output_path = "output.txt";
    
    const inputStream = fs.createReadStream(input_path);
    const outputStream = fs.createWriteStream(output_path, { encoding: "utf8" });
    var lineReader = readline.createInterface({
      input: inputStream,
      terminal: false,
    });
    lineReader.on("line", function (line) {
      outputStream.write(line + "
    ");
    });
    
    

    【讨论】:

      【解决方案2】:

      使用 Node.js,在 v18.11.0 中添加了一个新功能,可以逐行读取文件

      • filehandle.readLines([选项])

      这就是你如何将它与你想要阅读的文本文件一起使用

      import { open } from 'node:fs/promises';
      myFileReader();
      async function myFileReader() {
          const file = await open('./TextFileName.txt');
          for await (const line of file.readLines()) {
              console.log(line)
          }
      }
      

      要了解更多阅读 Node.js 文档,请参阅文件系统 readlines() 的链接: https://nodejs.org/api/fs.html#filehandlereadlinesoptions

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-13
        • 2015-05-21
        • 1970-01-01
        • 1970-01-01
        • 2014-12-01
        • 2015-10-25
        • 2011-07-23
        相关资源
        最近更新 更多