java - 如何使用java反转缓冲区内的字节

标签 java byte netty

我有一个缓冲区包含两个字节让我们想象缓冲区是:org.jboss.netty.buffer.ChannelBuffer buffer[28,29,30,31,32]到 在java中读取两个第一个字节我们使用这个函数:

buffer.readShort()

但我想要做的是将缓冲区从 29 读取到 28(我想反转字节的顺序)。

最佳答案

由于这不是您的对象,因此您必须使用 readByte 自己读取Byte

对于 Short,创建一个 Byte[2] 数组并调用该方法两次来填充它:

byte[] shortByte = {
    channel.readByte(),
    channel.readByte()
}

然后反转或者更简单

byte[] shortByte = new byte[2];
shortByte[1] = channel.readByte();
shortByte[0] = channel.readByte();

然后,您只需从该数组创建 Short 即可。您可以从以下帖子中了解如何操作:Convert a byte array to integer in java and vice versa

关于java - 如何使用java反转缓冲区内的字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44068814/

相关文章:

java - 获取 DOM 树中所有根到叶路径的列表

android - 如何在 Android NDK 中比较两个 jbyte 数组

java - Netty - 写入时缓冲响应

java - Netty 服务器事件

java - 寻找比 Java 更大的最小双倍

java - java对象初始化的最佳实践

java - 如何从 Java SUB 客户端 (ZMQ) 上的 python ZeroMQ PUB 服务器接收数据

.net - 为什么在尝试使用 Marshal.PtrToStructure 将字节数组转换为类实例时会出现访问冲突?

c - 如何计算 bfOffBits

centos - Netty ObjectDecoder 抛出 java.io.StreamCorruptedException : unexpected end of block data