相当于c#中的javax.nio.Buffer.flip()
题
我正在移植一些java代码,需要能够翻转( javax.nio.Buffer.flip()
)。
我使用byte []存储数据,我想翻转这些字节数组,就像Buffer一样,因为我认为在Buffer类下面也使用byte []。
由于
解决方案
ByteBuffer
可以使用 byte []
(例如,从 ByteBuffer.wrap
创建)或非Java堆内存(使用<代码> ByteBuffer.allocateDirect 代码>)。您可以使用 ByteBuffer.array
获取底层的 byte []
。但是在缓冲区上调用 flip
和类似方法并不会影响实际数据。而是改变与数据相关联的偏移。因此, byte
的等价物将是更改代码与之关联的偏移量。
其他提示
.NET中没有直接等效的 java.nio
包。异步IO通常使用 Stream.BeginRead
/ EndRead
进行处理,但它并不是真正相同的模型。你能告诉我们你想做什么吗?
编辑:你现在已经提供了你想要做的事情的低级细节,但由于.NET中的 nio
类没有真正的等价物,你将要么必须自己写(不是不可能,而是痛苦)或使用不同的更高级别类型。例如,您可以使用 MemoryStream
- 写入它,然后回头查看。这是一个位,就像翻转字节缓冲区一样。但是,如果没有关于更高层次目标的更多信息,我们无法判断这是否合适。可能有更好的方法。
不隶属于 StackOverflow