본문 바로가기
  • Sunnny-Dev
개발/안드로이드 스튜디오

[안드로이드 코틀린] txt 파일 불러오기. Assets

by sunny- 2023. 1. 28.

회원가입에서 이용약관, 개인정보처리방침을 띄워야하는데 value string으로 저장하기에는 내용이 너무 많아서 어려움을 겪고 있었다. 

 

이 내용은 아주 긴 문자열을 저장하고 불러와야할 때 사용하면 유용할 것 같다. 

1.  Assets 폴더를 만들어준다. 

Assets 폴더는 기본으로 만들어주진 않고 사용자가 만들어줘야한다. 

app에 우크릭-> New-> Folder -> Assets Folder 선택

 

2. Assets 폴더에 txt 파일 추가

txt 파일을 만들어서 직접 assets 폴더에 추가해준다. 

 

** 이때 주의해야할 점은 assets에 우클릭 -> file text만들기로 하면 txt 파일이 제대로 안만들어지는 것 같다.

이렇게 되면 뒤에서 내용을 불러올때 오류가 난다.

sample 처럼 생성되면 안되고 위에 agreement1.txt처럼 확장자가 txt로 만들어야 한다. 

 

방법은 메모장에 내용을 작성해 txt로 저장하고 직접 assets 폴더에 넣어주면 된다.

 

 

3. 액티비티 코틀린에서 코드 작성

 

메서드 getAssetsTextString 만들기

//이용약관, 개인정보처리방침 txt 파일 읽어오기
fun getAssetsTextString(mContext: Context, fileName:String):String{
    val termsString=StringBuilder()
    val reader:BufferedReader

    try {
        reader= BufferedReader(
            InputStreamReader(mContext.resources.assets.open("$fileName.txt"))
        )
        var str:String?
        while(reader.readLine().also { str=it }!=null){
            termsString.append(str)
            termsString.append('\n')//줄변경
        }
        reader.close()
        return termsString.toString()
    }catch (e:IOException){
        e.printStackTrace()
    }
    return "fail"
}

 

필요한 곳에서 호출

binding.textAgreement1Content.text=getAssetsTextString(this,"agreement1")

"agreement1" 에는 아까 앞에서 저장한 txt 파일 이름을 적어주면 된다. 

 

 

참고

https://stickode.tistory.com/514

댓글