我正在移植一些Java代码,并需要能够翻转(javax.nio.Buffer.flip()
)。
我使用byte []存储数据,我想要像Buffer一样翻转这些字节数组,因为我相信在Buffer类下面也使用了byte[]。
谢谢
java.nio
包在.NET中没有直接的等价物。异步IO通常使用Stream.BeginRead
/EndRead
处理,但这不是真正的相同模型。你能告诉我们你想做什么吗?
编辑:你现在提供了你要做的低级细节,但由于在.NET中没有真正等效的nio
类,你要么必须自己编写它们(不是不可能,但很麻烦),要么使用不同的更高级别类型。例如,你可以使用MemoryStream
——将数据写入其中,然后将其定位回开头。这有点像翻转字节缓冲区。但是,如果没有更多关于更高级目标的信息,我们无法确定是否适用。可能有更好的方法。
ByteBuffer
可以使用 byte[]
(例如从 ByteBuffer.wrap
创建)或非 Java 堆内存(使用 ByteBuffer.allocateDirect
创建)。您可以使用 ByteBuffer.array
获取底层的 byte[]
。但是,在缓冲区上调用 flip
和类似方法不会更改实际数据。相反,与数据关联的偏移量会更改。因此,使用 byte
的等效方法是更改代码与其关联的偏移量。