【问题标题】:Read previous/next line of text file with fs?使用 fs 读取文本文件的上一行/下一行?
【发布时间】:2016-02-12 05:09:35
【问题描述】:

我想知道是否可以读取文本文件的最后一行。然后,阅读之前的那个。我可以看到console 中的所有数据,但我不知道如何只显示 one 行。

目前,我分别使用fsbyline 来写入和读取文件。

【问题讨论】:

    标签: javascript node.js filesystems fs


    【解决方案1】:

    使用readline 核心模块而不是byline,并在收到事件时跟踪当前行和上一行。

    var rl = require('readline').createInterface({
      input: require('fs').createReadStream('input.file')
    });
    
    var current = "";
    var prev = "";
    
    rl.on('line', function (line) {
      prev = current;
      current = line;
    });
    
    rl.on('close', function () {
      console.log('Last line:', current);
      console.log('Prev line:', prev);
    });
    

    或者,只需将整个文件读入一个字符串,然后在换行后将其拆分。

    【讨论】:

    • 刚刚试了一下,效果很好!如果存在的话,你会知道我将如何得到下一行吗?
    • 不确定下一行是什么意思...在哪种情况下?
    • 我拿走了你的代码并使用 prev 来“返回”(我正在用 Electron 制作一个网络浏览器)。那行得通,但我不确定如何“前进”。我觉得我实际上可能需要更改执行此操作的方式,以使所需的功能正常工作,例如使用 JSON 在数组上来回迭代。
    • 我同意,您可能需要为此使用一些堆栈...或者可能需要 2 个堆栈,一个用于后退,一个用于前进。
    • 哈哈,好吧。当我弄清楚时,我会用我的解决方案更新我的问题。非常感谢您的帮助和建议。
    猜你喜欢
    • 2022-12-15
    • 2019-02-03
    • 2013-11-04
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    相关资源
    最近更新 更多