Android 프로젝트에는 assets 디렉토리를 생성할 수 있다.
이 assets 디렉토리는 앱에서 사용해야할 파일을 미리 저장해놓고 앱 내에서 필요할 때 꺼내서 사용할 수 있도록 도와주는 디렉토리이다.
우선 assets 디렉토리 만드는 방법부터 알아보겠다.
main 패키지에서 마우스 우클릭을 통해 Directory를 클릭한다.
아래 리스트 중 assets를 클릭한 뒤 엔터를 눌러 디렉토리를 생성한다.
main 패키지 내에 assets 디렉토리가 생성된 것을 확인할 수 있다.
샘플 코드는 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에 내용을 넣어준다.
예제는 텍스트파일이지만 다른 파일도 위 에제 코드와 동일한 형식으로 사용이 가능하다.