Android App Data 저장/로드
option | description | 활용 |
---|
File | file 형태로 data 저장 | |
Shared Preference | xml 형태로 Key - Value 쌍의 data 저장 | PreferenceFragment |
File
- 내부 저장소 활용
- App 전용 디렉토리 사용 (App 내에서만 접근 가능)
- App 설치 시 생성, App 삭제 시 삭제
- openFileIn(Out)put : App 내부 저장소 경로에 fileName으로 생성된 파일 출력 스트림 객체 반환
openFileOutput(fileName, Context.MODE_PRIVATE).write(data.toByteArray())
openFileInput(filename).reader().readText()
- 외부 저장소 활용
- SD 카드
- 외부 저장소 사용 권한, 존재 여부 예외처리 확인 필요
- getAppDataFileFromExternalStorage() : 외부 저장 장치에 위치한 파일 객체 반환
FileOutputStream(getAppDataFileFromExternalStorage(fileName)).write(data.toByteArray())
FileInputStream(getAppDataFileFromExternalStorage(fileName)).reader().readText()
Shared Preference
- getSharedPreferences() : 전달받은 이름으로 Preference 객체 반환
val preference by lazy { getSharedPreferences("PreExActivity", Context.MODE_PRIVATE) }
preference.edit().putString(nameFieldKey, nameField.text.toString()).apply()
nameField.setText(preference.getString(nameFieldKey, ""))
참고