본문 바로가기
안드로이드/데이터 입출력

안드로이드 assets

by 김어찐 2022. 6. 22.
728x90

raw 데이터 파일은 raw 폴더에 담으면 스트림을 손쉽게 추출할 수 있다는 장점이 있다.
허나 raw 폴더는 하위 폴더를 만드는 등 계층적으로 관리할 수 없다.
만약 파일들을 계층적인 폴더 구조를 만들어 관리하겠다면 assets 폴더를 사용한다.
assets 폴더는 res 폴더 내부가 아니므로 리소스(R 클래스)로 관리할 수 없다.

 

assets 폴더에는 다양한 종류의 파일들을 담고 사용할 수 있다.
특히 폰트 파일을 손쉽게 사용할 수 있도록 클래스를 제공하고 있다.

val face = Typeface.createFromAsset(assets, "font/font1.ttf")
textView.typeface = face

 

package com.example.assets

import android.graphics.Typeface
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import java.io.BufferedReader
import java.io.InputStreamReader

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button.setOnClickListener {
            val inputStream = assets.open("text/data1.txt")
            val isr = InputStreamReader(inputStream, "UTF-8")
            val br = BufferedReader(isr)

            var str: String? = null
            val sb = StringBuffer()
            do {
                str = br.readLine()
                if (str != null) {
                    sb.append("$str\n")
                }
            } while (str != null)
            br.close()
            textView.text = sb.toString()
        }
        button2.setOnClickListener {
            val inputStream = assets.open("text/data2.txt")
            val isr = InputStreamReader(inputStream, "UTF-8")
            val br = BufferedReader(isr)

            var str: String? = null
            val sb = StringBuffer()
            do {
                str = br.readLine()
                if (str != null) {
                    sb.append("$str\n")
                }
            } while (str != null)
            br.close()
            textView.text = sb.toString()
        }
        button3.setOnClickListener {
            val face =Typeface.createFromAsset(assets,"font/NotoSerifKR-Bold.otf")
            textView.typeface = face
        }
    }

}

 

 

728x90

'안드로이드 > 데이터 입출력' 카테고리의 다른 글

안드로이드 sqlite 2  (0) 2022.06.23
안드로이드 sqlite 1  (0) 2022.06.23
안드로이드 파일 입출력  (0) 2022.06.21
안드로이드 Application Class  (0) 2022.06.21
안드로이드 코드 View  (0) 2022.06.20