Как Base64 кодировать IntArray в Kotlin - PullRequest
0 голосов
/ 01 апреля 2019

Как base64 кодировать бафф intArrayOf с использованием Kotlin.

val vec = intArrayOf(1,2,3,4,5)
val data =?!
val base64Encoded = Base64.encodeToString(data, Base64.DEFAULT);

1 Ответ

0 голосов
/ 01 апреля 2019

Представление ByteArray для IntArray может быть вычислено следующим образом:

 fun IntArray.toByteArray(): ByteArray {

    val result = ByteArray(this.size * 4)

        for ((idx, value) in this.withIndex()) {
            result[idx + 3] = (value and 0xFF).toByte()
            result[idx + 2] = ((value ushr 8) and 0xFF).toByte()
            result[idx + 1] = ((value ushr 16) and 0xFF).toByte()
            result[idx] = ((value ushr 24) and 0xFF).toByte()
        }

        return result
    }

Этот результат затем может быть закодирован в Base64, как указано в вопросе:

val vec = intArrayOf(1,2,3,4,5)
val data = vec.toByteArray()
val base64Encoded = Base64.encodeToString(data, Base64.DEFAULT);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...