decoding With
Начиная с Kotlin: 1.8
fun InputStream.decodingWith(base64: Base64): InputStream
Возвращает входной поток, который декодирует символы из этого входного потока с использованием указанной кодировки base64. Дополнительные сведения о самой кодировке см. в документации Base64.
Чтение из возвращённого входного потока приводит к чтению некоторых символов из базового входного потока. Символы декодируются с использованием указанной кодировки base64, после чего возвращаются полученные байты. Символы декодируются блоками по 4 символа.
Требование, запрет или необязательность заполнения входных символов определяется значением PaddingOption, заданным для экземпляра base64. Символ заполнения '=' интерпретируется как конец потока символов. Последующие символы не считываются, даже если базовый входной поток ещё не достиг конца.
Возвращённый входной поток следует своевременно закрыть. Рекомендуем использовать функцию use, которая закрывает ресурс после выполнения заданного блока кода. Операция закрытия отбрасывает оставшиеся байты. Закрытие возвращённого входного потока приведёт к закрытию базового входного потока.
См. также
Примеры
import java.io.*
import kotlin.io.encoding.*
fun main() {
//sampleStart
ByteArrayInputStream("SGVsbG8gV29ybGQh".toByteArray()).decodingWith(Base64.Default).use {
println(it.readBytes().decodeToString()) // Hello World!
}
ByteArrayInputStream("UGFkOg==... and everything else".toByteArray()).use { input ->
input.decodingWith(Base64.Default).also {
// Reads only Base64-encoded part, including padding
println(it.readBytes().decodeToString()) // Pad:
}
// The original stream will only contain remaining bytes
println(input.readBytes().decodeToString()) // ... and everything else
}
//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/decoding-with.html