【问题标题】:Javascript - How to read a fileJavascript - 如何读取文件
【发布时间】:2016-04-22 16:58:08
【问题描述】:

我正在使用 readline rd.on('line', function(line) {..... 逐行读取文件。然后我想从第一行开始一次一行地使用文件,一直到文件的末尾。

似乎数组上的“unshift”(为了创建队列以保留顺序)只能接受文字而不是变量。

我看到的主要且显然最简单的解决方案是读取文件并将 int 处理为字符串并将 split(\n) 处理为数组。

有没有“更好”的方法?这似乎会消耗大量内存并因此受到限制。

【问题讨论】:

  • 你为什么要逐行阅读,然后再逐行循环?为什么不在你的 function(line) {...} 函数中第一次做你想做的任何事情?
  • 您无法在 Javascript 中读取文件
  • @CY5 是的,你可以。除了原谅森所说的之外,您是什么意思“数组上的 unshift [...] 只能采用文字?”任何文字都可以是变量。
  • 另外,unshift 可以很好地处理变量。
  • @CY5 readline 是一个节点模块,所以我假设 OP 使用的是 NodeJS。

标签: javascript arrays node.js file fifo


【解决方案1】:

没有理由将您的行读入数组后只是为了再次读取它们。在处理从readline 模块发出的line 事件时,只需处理该行即可。

这是Readline module docs 中关于如何逐行读取文件的摘录:

readline 的输入选项的常见情况是将文件系统可读流传递给它。这就是如何对文件进行逐行解析:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 2015-03-05
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2014-01-18
    • 2011-10-06
    • 1970-01-01
    相关资源
    最近更新 更多