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.

No escriba el Int directamente, escriba el resultado de value.toByte() :

 fun asByteArray(value: Short): ByteArray { val buffer: ByteBuffer = ByteBuffer.allocate(1) buffer.put(value.toByte()) return buffer.array() } fun asByteArray(value: Int): ByteArray { val buffer: ByteBuffer = ByteBuffer.allocate(1) buffer.put(value.toByte()) return buffer.array() } 
  • ¿Cómo encontrar qué elemento no comparó las matrices en Kotlin?
  • ¿Cómo inicializar una matriz en Kotlin?
  • Inicializando matrices en kotlin
  • Acoplar arreglo en Kotlin
  • Kotlin y ejemplificación de matriz detallada
  • Método igual para class de datos en kotlin
  • Inicializar ArrayList <ArrayList <Int >> con un tamaño en kotlin
  • Kotlin equivalente para el set de classs de C ++
  • Kotlin sorting array de una class basada en una var dentro de la class
  • indexOf en Matrices de Kotlin
  • Inicialización de matriz de subprocesss múltiples en Kotlin