【问题标题】:Writing and reading to a file using streams使用流写入和读取文件
【发布时间】:2019-01-24 09:18:02
【问题描述】:

无论我在控制台输入什么,下面的代码都会写入一个文件。它还同时从同一个文件中读取并显示文件中的任何内容。

我在控制台中输入的所有内容都保存在文件中。我手动去检查了它。但是我输入的任何内容都不会同时显示。

const fs = require('fs');
const Wstream = fs.createWriteStream('./testfile.txt', {encoding: 'utf8'});
const Rstream = fs.createReadStream('./testfile.txt', {encoding: 'utf8'});
process.stdin.pipe(Wstream);
Rstream.pipe(process.stdout);

为什么和下面的不一样?

process.stdin.pipe(process.stdout);

【问题讨论】:

    标签: javascript node.js node.js-stream


    【解决方案1】:

    read stream 将在 ./testfile.txt 中的数据完全通过管道传输时关闭。它不会等待其他条目或更改。

    您可以使用fs.watch 来监听文件更改,或者更好地使用更简单的东西,例如tail-streamnode-tail

    【讨论】:

    • 哦,好的,我会试试fs.watch 和其他人。谢谢你。但是,它不应该至少显示文件中已有的内容吗?
    • fs.createWriteStream 的默认选项会覆盖文件,因此在创建读取流时./testfile.txt 将为空。如果要附加到文件,可以使用fs.createWriteStream('./testfile.txt', { flags: 'a' })
    猜你喜欢
    • 2019-04-25
    • 1970-01-01
    • 2015-10-20
    • 2011-10-16
    • 2015-07-26
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 2010-11-11
    相关资源
    最近更新 更多