decode Into Byte Array
Начиная с Kotlin: 2.2
fun decodeIntoByteArray(source: ByteArray, destination: ByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = source.size): Int
Декодирует символы из указанного массива source или его поддиапазона и записывает полученные байты в массив destination. Возвращает количество записанных байтов.
Обязательность, запрет или необязательность дополнения входных символов определяется значением PaddingOption, заданным для этого экземпляра Base64.
Возвращает
количество байтов, записанных в массив destination.
Параметры
массив, из которого декодируются символы.
массив, в который записываются байты.
начальный индекс в массиве destination, с которого записываются байты; по умолчанию равен 0.
начало (включительно) поддиапазона для декодирования; по умолчанию равно 0.
конец (не включительно) поддиапазона для декодирования; по умолчанию равен размеру массива source.
Выбрасывает
если полученные байты не помещаются в массив destination, начиная с указанного destinationOffset, или если этот индекс выходит за пределы диапазона индексов массива destination.
если символы для декодирования дополнены не в соответствии с требованиями PaddingOption, заданного для этого экземпляра Base64, или если после дополнения имеются лишние символы.
Примеры
import kotlin.io.encoding.*
import kotlin.test.*
fun main() {
//sampleStart
val outputBuffer = ByteArray(1024)
// {data:\"ZW5jb2RlZA==\"}
val data = byteArrayOf(
123, 100, 97, 116, 97,
58, 34, 90, 87, 53, 106,
98, 50, 82, 108, 90, 65,
61, 61, 34, 125
)
val from = data.indexOf('"'.code.toByte()) + 1
val until = data.lastIndexOf('"'.code.toByte())
// decode subrange of input data into buffer and remember how many bytes were written
val bytesWritten = Base64.decodeIntoByteArray(data, destination = outputBuffer, startIndex = from, endIndex = until)
println(outputBuffer.decodeToString(endIndex = bytesWritten)) // encoded
//sampleEnd
}
fun decodeIntoByteArray(source: CharSequence, destination: ByteArray, destinationOffset: Int = 0, startIndex: Int = 0, endIndex: Int = source.length): Int
Декодирует символы из указанной символьной последовательности source или её подстроки и записывает полученные байты в массив destination. Возвращает количество записанных байтов.
Обязательность, запрет или необязательность дополнения входных символов определяется значением PaddingOption, заданным для этого экземпляра Base64.
Возвращает
количество байтов, записанных в массив destination.
Параметры
символьная последовательность, из которой декодируются символы.
массив, в который записываются байты.
начальный индекс в массиве destination, с которого записываются байты; по умолчанию равен 0.
начало (включительно) подстроки для декодирования; по умолчанию равно 0.
конец (не включительно) подстроки для декодирования; по умолчанию равен длине source.
Выбрасывает
если полученные байты не помещаются в массив destination, начиная с указанного destinationOffset, или если этот индекс выходит за пределы диапазона индексов массива destination.
если символы для декодирования дополнены не в соответствии с требованиями PaddingOption, заданного для этого экземпляра Base64, или если после дополнения имеются лишние символы.
Примеры
import kotlin.io.encoding.*
import kotlin.test.*
fun main() {
//sampleStart
val outputBuffer = ByteArray(1024)
val inputChunks = listOf("Q2h1bmsx", "U2Vjb25kQ2h1bms=", "Y2h1bmsjMw==")
var bufferPosition = 0
val chunkIterator = inputChunks.iterator()
while (bufferPosition < outputBuffer.size && chunkIterator.hasNext()) {
val chunk = chunkIterator.next()
// fill buffer with data decoded from base64-encoded chunks
// and increment current position by the number of decoded bytes
bufferPosition += Base64.decodeIntoByteArray(
chunk,
destination = outputBuffer,
destinationOffset = bufferPosition
)
}
// consume outputBuffer
println(outputBuffer.decodeToString(endIndex = bufferPosition)) // Chunk1SecondChunkchunk#3
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.io.encoding/-base64/decode-into-byte-array.html