我知道一种快速的方法可以将字节数组/短整型数组/整型数组/长整型数组转换为ByteBuffer,然后获取字节数组。例如,要将字节数组转换为短整型数组,我可以这样做:
生成一个类似这样的短数组:
我获得了原始的[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]字节数组。但是我想使用类似ShortBuffer.asByteBuffer()的方法,而不是手动循环来实现。
我找到了一个2001年的向Sun提出的请求,但是他们没有接受它;-((
byte[] bArray = { 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 };
ByteBuffer bb = ByteBuffer.wrap(byteArray);
ShortBuffer sb = bb.asShortBuffer();
short[] shortArray = new short[byteArray.length / 2];
sb.get(shortArray);
生成一个类似这样的短数组:
[256, 0, 0, 0, 256, 0, 0, 0]
。
我如何使用java.nio类进行逆操作?
现在我正在这样做:shortArray[] = {256, 0, 0, 0, 256, 0, 0, 0};
ByteBuffer bb = ByteBuffer.allocate(shortArray.length * 2);
for (short s : shortArray) {
bb.putShort(s);
}
return bb.array();
我获得了原始的[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]字节数组。但是我想使用类似ShortBuffer.asByteBuffer()的方法,而不是手动循环来实现。
我找到了一个2001年的向Sun提出的请求,但是他们没有接受它;-((