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