안드로이드 앱 데이터 개요
- Android Studio
- 2021. 6. 27. 16:54
Android App Data
App Data 저장방법 | 설명 |
File | File 시스템을 사용해 데이터를 저장합니다. 앱의 독립된 내 • 외부 저장소에 저장할 수 있습니다 |
Shared Preference | 'Key - Value' 형태로 데이터를 저장합니다. 앱의 독립된 내부 저장소에 저장됩니다. (간편) |
Sqlite | 안드로이드에서 자체 제공하는 데이터베이스를 사용해 구조화된 데이터를 저장합니다. |
Network | 네트워크를 사용해 데이터를 백엔드 서버에 저장합니다. |
1. File 예제
package com.jhs.quizlocker import android.app.usage.ExternalStorageStats import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.os.Environment import android.text.TextUtils import android.widget.Toast import kotlinx.android.synthetic.main.activity_file_ex.* import java.io.FileNotFoundException class FileExActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_file_ex) val filename = "data.txt" saveButton.setOnClickListener { val text = textField.text.toString() when { TextUtils.isEmpty(text) -> { Toast.makeText(applicationContext, "Text is empty", Toast.LENGTH_LONG).show() } Environment.getExternalStorageState() != Environment.MEDIA_MOUNTED -> { Toast.makeText(applicationContext, "External storage is not available", Toast.LENGTH_LONG).show() } else -> { saveToInnerStorage(text, filename) } } } loadButton.setOnClickListener { try { textField.setText(loadFromInnerStorage(filename)) } catch (e: FileNotFoundException) { Toast.makeText(applicationContext, "saved data dose not exist", Toast.LENGTH_LONG).show() } } } fun saveToInnerStorage(text: String, filename: String) { val fileOutputStream = openFileOutput(filename, Context.MODE_PRIVATE) // *파일 여는 모드 종류 fileOutputStream.write(text.toByteArray()) fileOutputStream.close() } fun loadFromInnerStorage(filename: String): String { val fileInputStream = openFileInput(filename) return fileInputStream.reader().readText() } } |
파일을 여는 모드 종류
참조할만한 함수
getFilesDir(): 내부 파일이 저장된 파일 시스템 디렉토리의 절대 경로를 가져옵니다.
getDiKString name, int mode): 내부 저장소 공간 내부에 name 디렉토리가 있으면 해당 File 객체를 반환 하고, 없으면 File 객체를 만든 후에 반환합니다. mode는 위의 표에서 설명 한 파일 모드입니다.
deleteFile(String name): 내부 저장소에 name으로 저장된 파일을 삭제합니다.
fileList(): 앱이 현재 저장한 파일명의 문자열 배열을 반환합니다.
외부저장소 사용시 권한요청
AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18"/>
API LEVEL(18)부터는 특별한 권한을 요청할 필요가 없다. 그래서 maxSDKVersion속성으로 특정 버전 이후 로는 권한을 요청하지 않도록 할 수 있다. 아래는 외부 저장소 사용 코드
'Android Studio' 카테고리의 다른 글
Android & Firebase 연동 (0) | 2021.07.07 |
---|---|
kotlin-android-extensions (0) | 2021.06.26 |
SharedPreferences (0) | 2019.06.06 |
이 글을 공유하기