Node.js 中的 fs.ReadStream 和 fs.createReadStream 有啥区别吗?
Posted
技术标签:
【中文标题】Node.js 中的 fs.ReadStream 和 fs.createReadStream 有啥区别吗?【英文标题】:Is there any difference between fs.ReadStream and fs.createReadStream in Node.js?Node.js 中的 fs.ReadStream 和 fs.createReadStream 有什么区别吗? 【发布时间】:2013-05-31 09:48:09 【问题描述】:在 Node.js 的 fs
模块中,fs.ReadStream
和 fs.createReadStream
有什么区别吗?据我所知,两者都取文件名,然后创建流对象......对吗?
【问题讨论】:
请将问题 2 作为单独的问题发布。readFile
- 在将文件提供给用户之前,它会将文件完全读入内存。 createReadStream
- 它将按照事先指定的大小分块读取文件。
【参考方案1】:
没有
https://github.com/nodejs/node/blob/1124de2d76ad7118267d91a08485aa928a5f0865/lib/fs.js#L1711
fs.createReadStream = function(path, options)
return new ReadStream(path, options);
;
细则:是的。 fs.createReadStream 会花费您 1 个额外的包装函数调用
【讨论】:
感谢您的回答。但是包装函数是否必要?平时处理ReadStream
时应该使用哪一个?我不明白为什么必须包装这个函数,特别是因为没有其他参数作为输入,除了在函数内创建新实例之外没有任何行。
我再说一遍,没有区别。您可以使用其中任何一种,无论哪种都无所谓。 'fs.createReadStream' 只是一种方便的方法,可能适合不喜欢 new
关键字的人。
由于与ES6
的兼容性,我应该更喜欢哪种代码样式?以上是关于Node.js 中的 fs.ReadStream 和 fs.createReadStream 有啥区别吗?的主要内容,如果未能解决你的问题,请参考以下文章