2011-04-29 16 views
1

问候Overflowers,从读/写字节数组在C#.NET 4个

我爱的记忆灵活性映射的文件,你可以读/写任何值类型。
有没有办法像字节数组一样做,而不必将它们复制到例如一个内存映射缓冲区?

问候从一个固定大小的字节数组

回答

1

您正在搜索的MemoryStream类可以初始化(不复制!)。

4

可以绑定一个MemoryStream给定的字节数组,设置它的属性Position去阵列内的特定位置,然后用BinaryReaderBinaryWriter从/到它读取不同类型的/写入值。

+0

THX的男人!尽管命名流,它允许随机访问。有没有使用BinaryReader/Writer读/写数组值的方法?赞赏。 – geeko 2011-04-30 04:01:42

+0

@geeko:你只需单击一下API文档,就可以读取/写入字符和字节数组。如果你想要其他值类型,只需使用循环。 – 2011-04-30 20:20:48

+0

thx再次。我之前阅读过文档。看来Buffer.BlockCopy和BitConvertor要走的路。 – geeko 2011-05-01 05:01:52

6

您可以使用BitConverter类在基本数据类型和字节数组之间进行转换。

您可以从阵列直接读取值:

int value = BitConverter.ToInt32(data, pos); 

要写入的数据将其转换为一个字节数组,并将其复制到数据:

BitConverter.GetBytes(value).CopyTo(data, pos);