AssetManager 사용하여 assets에서 파일 읽기

지프치프·2023년 12월 27일
0

Android

목록 보기
83/86
post-thumbnail

개요

Android 프로젝트에는 assets 디렉토리를 생성할 수 있다.
이 assets 디렉토리는 앱에서 사용해야할 파일을 미리 저장해놓고 앱 내에서 필요할 때 꺼내서 사용할 수 있도록 도와주는 디렉토리이다.

우선 assets 디렉토리 만드는 방법부터 알아보겠다.

assets 생성

main 패키지에서 마우스 우클릭을 통해 Directory를 클릭한다.

아래 리스트 중 assets를 클릭한 뒤 엔터를 눌러 디렉토리를 생성한다.

main 패키지 내에 assets 디렉토리가 생성된 것을 확인할 수 있다.

AssetManager 사용하여 파일 읽기

샘플 코드는 txt파일을 읽어와서 TextView에 넣어주는 방식으로 작성했다.
사용할 txt파일의 내용은 아래와 같다.

text.txt : 안녕하세요. 테스트 파일입니다.

                val assetManager = resources.assets
                val file = File(filesDir.path.plus("/text.txt")).also {
                    it.createNewFile()
                    it.deleteOnExit()
                }
                assetManager.open("text.txt", AssetManager.ACCESS_BUFFER).use { ins ->
                    val tempData = ByteArray(ins.available())
                    ins.read(tempData)
                    FileOutputStream(file).use {
                        it.write(tempData)
                    }

                    FileReader(file).use { reader ->
                        tvText.text = reader.readText()
                    }
                }

resources.assets 를 통해 assetManager의 인스턴스를 가져올 수 있다.
assemtManager.open(파일이름, AccessMode) 를 통해 열려는 파일의 inputStream을 가져올 수 있다.
이 inputStream을 통해 임시 파일로 쓰일 File 객체를 생성한 뒤
파일을 읽어서 TextView에 내용을 넣어준다.

예제는 텍스트파일이지만 다른 파일도 위 에제 코드와 동일한 형식으로 사용이 가능하다.

profile
지프처럼 거침없는 개발을 하고싶은 개발자

0개의 댓글