[kotlin] 코틀린에서의 바이트 배열 변환 함수

코틀린에서는 다양한 데이터 타입을 바이트 배열로 변환하거나 바이트 배열을 다른 데이터 타입으로 변환하는 함수들을 제공합니다. 이러한 함수들을 통해 데이터를 바이트 단위로 다루거나 네트워크 통신, 파일 입출력 등 다양한 상황에서 사용할 수 있습니다.

1. 문자열을 바이트 배열로 변환하기

문자열을 바이트 배열로 변환하는 가장 간단한 방법은 toByteArray() 함수를 사용하는 것입니다. 이 함수는 문자열을 UTF-8 인코딩으로 변환한 후 바이트 배열로 반환합니다.

val str = "Hello, world!"
val byteArray = str.toByteArray()

2. 숫자를 바이트 배열로 변환하기

숫자를 바이트 배열로 변환하기 위해서는 toByteArray() 함수를 사용할 수 있습니다. 이 함수는 숫자를 Big-endian으로 변환하여 바이트 배열로 반환합니다.

val number = 12345
val byteArray = number.toByteArray()

3. 바이트 배열을 문자열로 변환하기

바이트 배열을 문자열로 변환하기 위해서는 toString(Charset) 함수를 사용합니다. 이 함수에는 Charset 타입의 인자를 전달하여 원하는 인코딩을 설정할 수 있습니다.

val byteArray = byteArrayOf(72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33)
val str = byteArray.toString(Charsets.UTF_8)

4. 바이트 배열을 숫자로 변환하기

바이트 배열을 숫자로 변환하기 위해서는 toInt(), toLong(), toShort() 등의 함수를 사용할 수 있습니다. 이러한 함수들은 바이트 배열을 Big-endian으로 변환한 후 해당 숫자 타입으로 반환합니다.

val byteArray = byteArrayOf(0, 0, 48, 57)
val number = byteArray.toInt()

5. 기타 유용한 함수들

코틀린에서는 바이트 배열을 다양한 형태로 변환할 수 있는 여러 유용한 함수들을 제공합니다. 예를 들어, copyOfRange() 함수를 사용하여 바이트 배열의 일부를 추출하거나, contentEquals() 함수를 사용하여 두 바이트 배열이 동일한지 비교할 수도 있습니다.

val byteArray = byteArrayOf(72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33)
val subArray = byteArray.copyOfRange(2, 6)
val isEqual = byteArray.contentEquals(subArray)

위에서 소개한 함수들은 코틀린 표준 라이브러리에 기본적으로 포함되어 있으므로 따로 추가적인 설정이 필요하지 않습니다. 다양한 데이터 타입을 바이트 배열로 변환하거나 바이트 배열을 다른 데이터 타입으로 변환할 때 이러한 함수들을 활용해보세요.