使用流读写文件

3
以下代码可以将我在控制台中输入的任何内容写入文件。它同时从同一个文件读取并显示文件中的内容。

我在控制台中输入的所有内容都会保存在文件中,我手动检查了一下。但是我输入的任何内容都不会立即显示出来。

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);
1个回答

3
./testfile.txt 中的数据被完全传输时,读取流 将被关闭。它不会等待其他条目或更改。
您可以使用fs.watch来监听文件更改,或者更好地使用像tail-streamnode-tail这样更简单的工具。

好的,我会尝试使用fs.watch和其他方法。谢谢你。但是,它不应该至少显示文件中已经存在的内容吗? - NewbieCoder
fs.createWriteStream 的默认选项会覆盖文件,因此在创建读取流时 ./testfile.txt 将为空。如果您想要追加到文件中,可以使用 fs.createWriteStream('./testfile.txt', { flags: 'a' }) - nijm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接