raw 데이터 파일은 raw 폴더에 담으면 스트림을 손쉽게 추출할 수 있다는 장점이 있다.
허나 raw 폴더는 하위 폴더를 만드는 등 계층적으로 관리할 수 없다.
만약 파일들을 계층적인 폴더 구조를 만들어 관리하겠다면 assets 폴더를 사용한다.
assets 폴더는 res 폴더 내부가 아니므로 리소스(R 클래스)로 관리할 수 없다.
button.setOnClickListener{
// Assets 폴더에 있는 파일과 연결된 스트림을 추출한다.
// asstes 하위 폴더부터 이름을 작성
val inputStream = assets.open("text/data.txt")
val inputStreamReader = InputStreamReader(inputStream, "UTF-8")
val bufferedReader = BufferedReader(inputStreamReader)
var str:String? = null
val stringBuffer = StringBuffer()
do{
str = bufferedReader.readLine()
if(str != null){
stringBuffer.append("${str}\n")
}
}while(str != null)
bufferedReader.close()
textView.text = stringBuffer.toString()
}
ttf : bipmap, 윈도우에서 정의
otf : vector, 확대시 사용하기 좋음, 맥에서 정의
assets 폴더에는 다양한 종류의 파일들을 담고 사용할 수 있다.
특히 폰트 파일을 손쉽게 사용할 수 있도록 클래스를 제공하고 있다.
button2.setOnClickListener{
// Assets 폴더에 있는 폰트 파일을 이용해 폰트 객체를 생성한다.
val typeFace = Typeface.createFromAsset(assets, "fonts/NanumPen.ttf")
// TextView에 적용한다.
textView.typeface = typeFace
textView.textSize = 40.0f
}