글 목차
728x90
앱 내부의 저장소에 txt파일을 만들고 그 txt파일을 읽는 코드를 작성한다.
1. xml 작성
2. MainActivity 작성
a) 앱이 실행되자 마자 파일을 읽는 메서드 작성
b) 버튼의 리스너 작성
1. xml 작성
1. 읽은 파일의 내용이 적힐 TextView
2. 파일 내용을 작성할 PlainText
3. 파일 내용을 저장할 버튼 Button
세 가지를 만든다.
2. MainActivity 작성
package com.example.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.example.myapplication.databinding.ActivityMainBinding
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.File
import java.io.FileReader
import java.io.FileWriter
class MainActivity : AppCompatActivity() {
val binding by lazy {ActivityMainBinding.inflate(layoutInflater)}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
with(binding) {
val filename = "memo01.txt"
val directory_name = "memo"
btnSave.setOnClickListener {
val content = textWrite.text.toString()
Log.d("ggg", content)
writeTextFile(directory_name, filename, content)
}
val path = directory_name + "/" + filename
val writtenContent = readTextFile(path)
textRead.text = writtenContent
}
}
fun readTextFile(path: String): String {
Log.d("ggg", filesDir.path + "/" + path)
val fullpath = File(filesDir.path + "/" + path)
if(!fullpath.exists()) return ""
val reader = FileReader(fullpath)
val buffer = BufferedReader(reader)
val result = StringBuilder()
var temp: String? = ""
while(true) {
temp = buffer.readLine()
if(temp == null) break
result.append(temp + "\n")
}
Log.d("ggg", result.toString())
return result.toString()
}
fun writeTextFile(directory: String, filenmae:String, content:String) {
val dir = File(filesDir.path + "/" + directory)
if(!dir.exists()) dir.mkdirs()
val fullpath: String = dir.path + "/" + filenmae
Log.d("ggg", "저장결로" + fullpath)
val writer = FileWriter(fullpath)
val buffer = BufferedWriter(writer)
buffer.write(content)
buffer.close()
writer.close()
Log.d("ggg", "gggggg")
}
}
728x90