конвертировать LongBuffer / IntBuffer / ShortBuffer в ByteBuffer

Я знаю быстрый способ преобразования массива byte / short / int / long в ByteBuffer, а затем получить массив байтов. Например, чтобы преобразовать байтовый массив в короткий массив, я могу сделать:

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].

How can I do the inverse operation using 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 года, но они этого не приняли; - ((

Ответы на вопрос(3)

Ваш ответ на вопрос