【问题标题】:fs.createReadStream - limit the amount of data streamed at a timefs.createReadStream - 限制一次流式传输的数据量
【发布时间】:2016-01-13 01:11:06
【问题描述】:

如果我只想一次读取 10 个字节,或者一次读取一行数据(查找换行符),是否可以像这样传递 fs.createReadStream() 选项

  var options = {}

  var stream = fs.createReadStream('file.txt', options);

以便我可以限制一次流式传输的数据量? 查看 fs 文档,我没有看到任何允许我这样做的选项,即使我猜这是可能的。

https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options

【问题讨论】:

  • 没关系,看起来'highWaterMark'可以解决问题,如下所示: var stream = fs.createReadStream('dog.jpeg', { highWaterMark:5 });但如果有更好的方法请告诉我

标签: node.js stream fs


【解决方案1】:

你可以使用.read():

var stream = fs.createReadStream('file.txt', options);
var byteSize = 10;

stream.on("readable", function() {
    var chunk;
    while ( (chunk = stream.read(byteSize)) ) {
        console.log(chunk.length);
    }
});

highWaterMark 选项相比,了解此选项的主要好处是您可以在尚未创建的流上调用它。

Here are the docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 2014-08-31
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多