流可能写入小于缓冲区大小?

时间:2014-06-24 11:28:57

标签: c# .net

Stream.ReadStream.Write intellisenses 非常相似。这让我想到是否与具有相同的问题 - 它最多只读 缓冲区中的字节数。即使有更多要阅读的内容,也不一定要填充缓冲区。

MSDN似乎没有说有。但我仍然在问,因为这是一个棘手的功能" - 因为通常工作正常 - 测试时可能不会遇到它。

2 个答案:

答案 0 :(得分:6)

不,Write将始终写出您要求的所有。它可以在整个过程中进行缓冲,但您不必担心“重写”的方式与重复读取数据的方式相同。

答案 1 :(得分:2)

Write方法将始终写入您要求的所有数据。当您读取数据时,可能没有您请求的那么多,但是当您写入数据时总是存在。

Write method的文档没有像Read method这样的评论,其中说该方法的读取次数少于请求。

您还可以查看方法签名,看看它没有返回任何内容。如果该方法的写入次数少于指定值,那么它必须与实际写入的内容进行通信。