sgt*_*gtz 13 .net c# memorystream
在MS的这个例子中,你会注意到在我们从内存流中读取一个字节之后,它会进入一个int,然后必须将其转换为byte.它让我感到奇怪的是,像这样的函数.ReadByte()
首先不返回一个字节.MS有这样做的原因吗?
// Read the remaining bytes, byte by byte.
while(count < memStream.Length)
{
byteArray[count++] =
Convert.ToByte(memStream.ReadByte());
}
Run Code Online (Sandbox Code Playgroud)
一个念头发生在我身上.也许这取决于使用情况.也许ReadByte()
通常用于检索短长度,这些子句在检索中通过长度变化消耗
int length=ms.ReadByte();
ms.Read(buf,0,lenth);
Run Code Online (Sandbox Code Playgroud)
即你可以使用没有演员阵容的长度.这是一个足够好的理由吗?
使用时ReadByte
如果读取成功,则流中的当前位置前进一个字节.但它的设计目的是在达到流的末尾时返回-1.
现在这不是Byte
(无符号)的有效值
ms.Read(buf,0,lenth);
这里lenth是从流中读取的字节数,你得到的ReadByte
是第一个字节,它不能以这种方式使用,类似于
byte[] buff = new byte[ms.Length];
ms.Read(buff , 0, buff .Length);
Run Code Online (Sandbox Code Playgroud)