convertir un LongBuffer / IntBuffer / ShortBuffer a ByteBuffer

Conozco una forma rápida de convertir un byte / short / int / long array a ByteBuffer, y luego obtener un byte array. Por ejemplo, para convertir una matriz de bytes en una matriz corta, puedo hacer:

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);

produce una matriz corta como esta:[256, 0, 0, 0, 256, 0, 0, 0].

¿Cómo puedo hacer la operación inversa usandojava.nio clases?

Ahora estoy haciendo esto:

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();

Y obtengo el original.[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0] matriz de bytes. Pero quiero usar un método como ShortBuffer.asByteBuffer (), no un ciclo manual para hacerlo.

He encontrado unSolicitud a Sol de 2001., pero no lo aceptaron; - ((

Respuestas a la pregunta(3)

Su respuesta a la pregunta