我正在移植一些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 - 写入它,然后回头查看。这是一个,就像翻转字节缓冲区一样。但是,如果没有关于更高层次目标的更多信息,我们无法判断这是否合适。可能有更好的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top