我想创建一个包含int32,int16,单个值的内存流。使用二进制代码是无用的,所以我试图做字节数组。因为价值是不同的类型,我不知道如何正确地做到这一点。所以我尝试做这样的:从不同类型的数据字节数组的MemoryStream
byte[] tab = new byte[]{2,0,0,0,3,0,3,0}
- 2 INT32(四个字节),另外两个3 INT16(两个字节)
工作正常,但是当我想添加一些单一的价值观,它产生错误。我不能做这样的:
byte[] tab = new byte[]{2,0,0,0,3,0,3,0,4.4f,5.6f}
我必须流格式正确,会导致流将在该方法中阅读:
short[] rawData;
float[] modulusData;
public void rawData(Stream s)
{
BinaryReader br = new BinaryReader(s);
int dataCount = br.ReadInt32();
if (dataCount > 0)
{
rawData = new short[dataCount];
for (int i = 0; i < dataCount; i++)
rawData[i] = br.ReadInt16();
}
else
rawData = new short[0];
dataCount = br.ReadInt32();
if (dataCount > 0)
{
modulusData = new float[dataCount];
for (int i = 0; i < dataCount; i++)
modulusData[i] = br.ReadSingle();
}
else
modulusData = new float[0];
}
任何人有知道如何做到这一点?
你得到什么错误,从中读取流? – 2011-02-11 07:29:59