首页 > 解决方案 > reader.ReadToEnd 和 Stream.Read 之间的区别

问题描述

在 DotNet 中使用 Amazon S3 客户端时,我们会得到一个具有 .ResponseStream 属性的 GetObjectResponse 类型的对象,我们可以使用 StreamReader.ReadToEnd(ResponseStream) 一次性读取内容。但是也有使用 MemoryStream 缓冲区,我们可以使用 Stream.Read() 方法使用有限大小的缓冲区以块的形式读取它。每种方法的缺点/优点是什么?当读取较大的文件时,分块方法会更有利吗?

标签: c#.netamazon-s3aws-sdk-net

解决方案


StreamReader. 将StremReader.ReadToEnd()读取整个文件以结束。

接收从较大文件中分解的StreamRead()小块数据。应用程序可以从流中读取这些小块数据,而不必直接从较大的文件中读取所有数据

因此,对于较大的文件,分块方法StreamRead()会更有效。


推荐阅读