2011-04-29 22 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);