Cómo escribir Short / Int en buffer de 1 byte

Tengo estas funciones:

fun asByteArray(value: Short): ByteArray { val buffer: ByteBuffer = ByteBuffer.allocate(2) buffer.order(ByteOrder.BIG_ENDIAN) buffer.putShort(value) buffer.flip() return buffer.array() } fun asByteArray(value: Int): ByteArray { val buffer: ByteBuffer = ByteBuffer.allocate(4) buffer.order(ByteOrder.BIG_ENDIAN) buffer.putInt(value) buffer.flip() return buffer.array() } 

Si el valor es 255, me gustaría escribirlo en un búfer de 1 byte. ¿Cómo puedo hacerlo? Si hago ByteBuffer.allocate(1) y trato de escribir short / int value, entonces se produce BufferOverflowException.