투케이2K

372. (kotlin/코틀린) [유틸 파일] getFormByteArray : 사용자가 지정한 형식에 맞게 문자열 바이트 값 반환 - toByteArray 본문

Kotlin

372. (kotlin/코틀린) [유틸 파일] getFormByteArray : 사용자가 지정한 형식에 맞게 문자열 바이트 값 반환 - toByteArray

투케이2K 2023. 8. 10. 07:37

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

        // -----------------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [RETURN] getFormByteArray : 사용자가 지정한 형식에 맞게 문자열 바이트 값 반환
        // -----------------------------------------------------------------------------------------
        fun getFormByteArray(form: String, data: String): ByteArray? {

            /**
             * // -----------------------------------------
             * [getFormByteArray 메소드 설명]
             * // -----------------------------------------
             * 1. getFormByteArray : 사용자가 지정한 형식에 맞게 문자열 바이트 값 반환
             * // -----------------------------------------
             * 2. 호출 방법 :
             *
             * C_Encryption.getFormByteArray("UTF-16LE", "hello")
             *
             * C_Encryption.getFormByteArray("UTF-16LE", "투케이")
             * // -----------------------------------------
             * 3. 리턴 데이터 : byte array
             * // -----------------------------------------
             * 4. 참고 형식 지정 타입 :
             *
             * MS949 : 한글 2바이트로 인식 / 아스키 문자는 1바이트 / 한글 확장 완성형
             * UTF-8 : 유니코드를 위한 가변 길이 문자 인코딩 방식 / 초성, 중성, 종성을 각각 1바이트로 인식 / 한글을 3바이트로 인식 / 공백이나 영문은 1바이트로 인식
             * UTF-16LE : 한글 2바이트로 인식 / 문자당 2byte / 유니코드 표현
             * EUC-KR : 한글 2바이트로 인식 / 아스키 문자는 1바이트 / 아시아계 문자를 표현 / 한글 완성형
             * ISO-8859-1 : 아스키 문자는 1바이트 / 서유럽 언어 표기
             * // -----------------------------------------
             */


            // [변수 선언 실시]
            var returnData: ByteArray? = null
            var byteLen = -1
            var m_log = ""
            var errorFlag = false


            // [로직 처리 실시]
            try {

                // [1]. 인풋 값 널 체크 수행
                if (stringNotNull(form) == false || stringNotNull(data) == false) {
                    m_log = "[ERROR] : Input Data Is Null"
                    errorFlag = true
                }


                // [2]. 리턴 변수에 삽입
                if (errorFlag == false) {

                    returnData = data.toByteArray(charset(form))
                    byteLen = returnData.size
                    m_log = "[SUCCESS] : Byte Return"

                }

            } catch (e: Exception) {
                S_Log._printStackTrace_(null, S_FinalMsg.LOG_BUG_STATE, null, e)
                m_log = "[Exception] : " + e.message.toString()
                errorFlag = true
            }


            // [로그 출력]
            //*
            // ===============================================================
            S_Log._D_("사용자가 지정한 형식에 맞게 문자열 바이트 값 반환", arrayOf(
                "INPUT [TYPE] :: $form",
                "INPUT [DATA] :: $data",
                "M_LOG :: $m_log",
                "BYTE LENGTH :: $byteLen",
                "RETURN [BYTE] :: " + Arrays.toString(returnData).toString()
            ))
            // ===============================================================
            // */


            // [리턴 데이터 반환 실시]
            return returnData
        }

 

반응형
Comments