stream.Take(16)< - 制作16字节的数组?

时间:2012-08-10 20:24:20

标签: .net stream

我觉得很傻,但是......

使用C#/ .NET我有一个流,我编写了自己的扩展函数来读取short(或内置字节)。

我可以使用哪些内容创建一个X长度数组(在我的示例中为16)并返回一个字节数组?否则会抛出异常? ReadByte做到了并且内置了。应该有类似于我在.NET框架中已经提出的要求

1 个答案:

答案 0 :(得分:2)

  

我可以使用哪些内容创建一个X长度数组(在我的示例中为16)并返回一个字节数组?

对于字节数据,您只需拨打Stream.Read

即可
byte[] values = new byte[16];
int read = theStream.Read(values, 0, 16);
// Make sure you read all 16...

或者,您可以使用BinaryReader.ReadBytes

byte[] values = theStream.ReadBytes(16);

如果你想处理短数据,我会为BinaryReader制作一个扩展方法:

public static short[] ReadInt16Array(this BinaryReader reader, int elementsToRead)
{
     short[] results = new short[elementsToRead];
     for (int i=0;i<elementsToRead;++i)
        results[i] = reader.ReadInt16();
     return results;
}