byte[] input = new byte[] {2, 4, 5, 2, 1};
ByteBuffer bytebuf = ByteBuffer.wrap(input);
ByteBuffer.wrap(byte[] array)
方法使缓冲区和数组互连,修改缓冲区将导致数组被修改,反之亦然。ByteBuffer
在C#中的等价物是memorystream,但是我不知道如何像ByteBuffer.wrap()
方法那样将memorystream与数组连接起来。
有没有人能说出C#中ByteBuffer.wrap()
的等价物是什么?我到处找都找不到答案。
先谢了。
2条答案
按热度按时间w6lpcovy1#
Use a binary writer and a memory stream.
我没有将这个问题标记为重复,仅仅是因为您没有准确地问另一个发帖者做了什么。我不知道在这种情况下该怎么做,但仍然希望能帮助您。祝您好运!
以下是该链接的代码,以供后人参考:
ss2ws0br2#
与
wrap
等效的是使用MemoryStream
的构造函数,该构造函数接受byte[]
:MemoryStream(byte[])
。这“ Package ”了原始数组,因此是一个固定大小的缓冲区。与另一个答案不同的是,这保留了数组的内容(如果您想从中读取,这一点很重要),并且不创建任何副本,我理解这是您问题的重点。
否则,要在缓冲区/流中读/写逻辑值,答案与现有答案大致相同:使用
StreamWriter
和/或StreamReader
。