Spec-Zone.ru › Kotlin 2

Вариантдополнения

kotlin-stdlib/kotlin.io.encoding/Base64/PaddingOption

Платформа и требования к версии: Common (2.2)

enum PaddingOption : Enum<Base64.PaddingOption> 

Перечисление возможных вариантов дополнения для кодирования и декодирования Base64.

Константы этого класса-перечисления можно передать функции withPadding, чтобы создать новый экземпляр Base64 с указанным вариантом дополнения. Каждый вариант дополнения влияет на операции кодирования и декодирования экземпляра Base64 следующим образом:

PaddingOption При кодировании При декодировании
PaddingOption.PRESENT Добавляет дополнение Дополнение обязательно
PaddingOption.ABSENT Не добавляет дополнение Дополнение не должно присутствовать
PaddingOption.PRESENT_OPTIONAL Добавляет дополнение Дополнение необязательно
PaddingOption.ABSENT_OPTIONAL Не добавляет дополнение Дополнение необязательно

Эти варианты обеспечивают гибкость при обработке символов дополнения ('=') и совместимость с различными библиотеками и протоколами Base64.

Примеры

import kotlin.io.encoding.*
import kotlin.test.*

fun main() { 
   //sampleStart 
   val format = HexFormat {
    upperCase = true
    bytes.byteSeparator = " "
}

val bytes = byteArrayOf(0xDE.toByte(), 0x2D, 0x02, 0xC0.toByte())

// The Base64.Default instance is configured with PaddingOption.PRESENT
println(Base64.Default.encode(bytes)) // 3i0CwA==
println(Base64.Default.decode("3i0CwA==").toHexString(format)) // DE 2D 02 C0
// PaddingOption.PRESENT requires the decode input to be properly padded
// Base64.Default.decode("3i0CwA") // will fail with IllegalArgumentException

// Create a new instance with PaddingOption.ABSENT that uses the Base64.Default alphabet
val base64AbsentPadding = Base64.Default.withPadding(Base64.PaddingOption.ABSENT)

println(base64AbsentPadding.encode(bytes)) // 3i0CwA
println(base64AbsentPadding.decode("3i0CwA").toHexString(format)) // DE 2D 02 C0
// PaddingOption.ABSENT requires the decode input not to be padded
// base64AbsentPadding.decode("3i0CwA==") // will fail with IllegalArgumentException

// Create a new instance with PaddingOption.PRESENT_OPTIONAL that uses the Base64.Default alphabet
val base64PresentOptionalPadding = Base64.Default.withPadding(Base64.PaddingOption.PRESENT_OPTIONAL)

println(base64PresentOptionalPadding.encode(bytes)) // 3i0CwA==
// PaddingOption.PRESENT_OPTIONAL allows both padded and unpadded decode inputs
println(base64PresentOptionalPadding.decode("3i0CwA==").toHexString(format)) // DE 2D 02 C0
println(base64PresentOptionalPadding.decode("3i0CwA").toHexString(format)) // DE 2D 02 C0
// However, partially padded input is prohibited
// base64PresentOptionalPadding.decode("3i0CwA=") // will fail with IllegalArgumentException

// Create a new instance with PaddingOption.ABSENT_OPTIONAL that uses the Base64.Default alphabet
val base64AbsentOptionalPadding = Base64.Default.withPadding(Base64.PaddingOption.ABSENT_OPTIONAL)

println(base64AbsentOptionalPadding.encode(bytes)) // 3i0CwA
// PaddingOption.ABSENT_OPTIONAL allows both padded and unpadded decode inputs
println(base64AbsentOptionalPadding.decode("3i0CwA").toHexString(format)) // DE 2D 02 C0
println(base64AbsentOptionalPadding.decode("3i0CwA==").toHexString(format)) // DE 2D 02 C0
// However, partially padded input is prohibited
// base64AbsentOptionalPadding.decode("3i0CwA=") // will fail with IllegalArgumentException 
   //sampleEnd
}

Элементы

PRESENT

Платформа и требования к версии: Common

PRESENT

Добавляет дополнение при кодировании и требует его при декодировании.

ABSENT

Платформа и требования к версии: Common

ABSENT

Не добавляет дополнение при кодировании и запрещает его при декодировании.

PRESENT_OPTIONAL

Платформа и требования к версии: Common

PRESENT_OPTIONAL

Добавляет дополнение при кодировании и допускает его отсутствие при декодировании.

ABSENT_OPTIONAL

Платформа и требования к версии: Common

ABSENT_OPTIONAL

Не добавляет дополнение при кодировании и допускает его отсутствие при декодировании.

Свойства

declaringJavaClass

Платформа и требования к версии: JVM (1.7)

val <E : Enum<E>> Enum<E>.declaringJavaClass: Class<E>

Возвращает экземпляр Java-класса Class, к которому принадлежит указанная константа перечисления.

entries

Платформа и требования к версии: Common (2.2)

val entries: EnumEntries<Base64.PaddingOption>

Возвращает представление неизменяемого списка всех элементов перечисления в порядке их объявления.

name

Платформа и требования к версии: Common (2.2)

expect val name: String

Возвращает имя этой константы перечисления в точности в том виде, в котором оно указано в объявлении перечисления.

ordinal

Платформа и требования к версии: Common (2.2)

expect val ordinal: Int

Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается порядковый номер 0).

Функции

compareTo

Платформа и требования к версии: Common (1.6)

infix inline fun <T> Comparable<T>.compareTo(other: T): Int

Сравнивает этот объект с указанным объектом на предмет порядка. Возвращает ноль, если этот объект равен указанному объекту other, отрицательное число, если он меньше other, или положительное число, если он больше other.

valueOf

Платформа и требования к версии: Common (2.2)

fun valueOf(value: String): Base64.PaddingOption

Возвращает константу перечисления этого типа с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления этого типа. (Пробельные символы не допускаются.)

values

Платформа и требования к версии: Common (2.2)

fun values(): Array<Base64.PaddingOption>

Возвращает массив, содержащий константы этого типа перечисления в порядке их объявления.

© 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/-padding-option/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API