투케이2K

199. (kotlin/코틀린) [유틸 파일] innerImageFileWrite : 내부 저장소에 이미지 (image) 파일 쓰기 본문

Kotlin

199. (kotlin/코틀린) [유틸 파일] innerImageFileWrite : 내부 저장소에 이미지 (image) 파일 쓰기

투케이2K 2023. 1. 17. 21:02

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

 

        // TODO [SEARCH FAST] : [RETURN] innerImageFileWrite : 내부 저장소 이미지 파일 쓰기
        fun innerImageFileWrite(activity: Activity, fileName: String, data: ByteArray?): Boolean {

            /**
             * // -----------------------------------------
             * [innerImageFileWrite 메소드 설명]
             * // -----------------------------------------
             * 1. innerImageFileWrite : 내부 저장소 이미지 파일 쓰기
             * // -----------------------------------------
             * 2. 호출 방식 :
             *
             *   C_App.innerImageFileWrite(A_Main@this, "test.png", byteArray)
             *
             * // -----------------------------------------
             * 3. 리턴 데이터 : 정상적으로 저장한 경우 true / 아니면 false
             * // -----------------------------------------
             * 4. 참고 : 내부 저장소는 퍼미션 권한 없이 읽기, 쓰기 가능 / 앱 삭제 시 저장된 데이터 삭제
             * // -----------------------------------------
             * */


            // [리턴 값 선언]
            var returnData = false
            var filePath = ""


            // [로직 처리 실시]
            try {
                if (C_Util.stringNotNull(fileName) === true && fileName.endsWith("png") == true
                    && data != null && data.isEmpty() == false && data.size>0) {

                    // [File 선언 실시]
                    val file = File(activity.filesDir, fileName)

                    // [파일 저장 실시]
                    val fos = FileOutputStream(file)
                    fos.write(data)

                    // [스트림 닫기]
                    fos.close()

                    // [리턴 데이터 삽입]
                    returnData = true

                    // [파일 저장 경로 확인]
                    filePath = file.absolutePath
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            ///*
            Log.i("---","---")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_App >> innerImageFileWrite() :: 내부 저장소 이미지 파일 쓰기]")
            Log.i("","\n"+"--------------------------------")
            Log.i("","\n"+"[INPUT [FILE NAME] :: "+fileName.toString()+"]")
            Log.i("","\n"+"--------------------------------")
            Log.i("","\n"+"[INPUT [DATA] :: "+Arrays.toString(data)+"]")
            Log.i("","\n"+"--------------------------------")
            Log.i("","\n"+"[FILE SAVE :: "+filePath.toString()+"]")
            Log.i("","\n"+"--------------------------------")
            Log.i("","\n"+"[RETURN :: "+returnData.toString()+"]")
            Log.d("//===========//","================================================")
            Log.i("---","---")
            // */


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


 

반응형
Comments