reader.ReadToEnd 和 Stream.Read 之间的区别
Posted
技术标签:
【中文标题】reader.ReadToEnd 和 Stream.Read 之间的区别【英文标题】:difference between reader.ReadToEnd and Stream.Read 【发布时间】:2021-12-25 05:37:22 【问题描述】:在 DotNet 中使用 Amazon S3 客户端时,我们会得到一个 GetObjectResponse 类型的对象,该对象具有 .ResponseStream 属性,我们可以使用 StreamReader.ReadToEnd(ResponseStream) 一次性读取内容。但是也有使用 MemoryStream 缓冲区,我们可以使用 Stream.Read() 方法使用有限大小的缓冲区分块读取它。每种方法的缺点/优点是什么?分块方式在读取大文件时会不会更有优势?
【问题讨论】:
您能否添加一些演示代码来说明实际问题是什么?这听起来更像是一个一般性的 C# 问题,而不是与 AWS 相关的问题,但只是想仔细检查一下。 【参考方案1】:StreamReader
中将提供简单的文本文件访问。 StremReader.ReadToEnd()
将读取整个文件以结束。
StreamRead()
接收从较大文件中分解出来的小块数据。
应用程序可以从流中读取这些小块数据,而不必直接从较大的文件中读取所有数据
所以对于较大的文件,分块方法StreamRead()
会更有效。
【讨论】:
以上是关于reader.ReadToEnd 和 Stream.Read 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章