Home » Android -12. Preference와 파일 처리

Android -12. Preference와 파일 처리

12.1. Preference

  • Preference는 화면 이동 시 간에 발생하는 데이터 손실을 방지하기 위해 사용되는 자료형.

<stemp10/PreferenceSample>
[php]
// 프리퍼런스 생성
pref = getSharedPreferences(PREF_NAME, 0); // 0은 읽기/쓰기 모두 가능하다 (1)
prefEdit = pref.edit(); (2)
… 생략
// 프리퍼런스에 데이터 저장
prefEdit.putBoolean("checkBoxValue", true); (3)
prefEdit.putString("name", preferenceSampleName.getText().toString()); (4)
prefEdit.putString("email", preferenceSampleEmail.getText().toString());
prefEdit.commit(); (5)
… 생략
// 프리퍼런스로부터 값을 가져온다
String name = pref.getString("name", ""); (6)
String email = pref.getString("email", "");
[/php]

번호 설명
(1) Preference 생성 인자로 이름과 모드(읽기/쓰기 등)가 들어간다. 0의 경우 읽기/쓰기
(2) 데이터 저장을 위한 Edit 객체 생성
(3) 데이터를 넣는다. key와 value를 인자로 받는다. (boolean 형태)
(4) 데이터를 넣는다. key와 value를 인자로 받는다. (String 형태)
(5) 넣어져 있는 데이터를 저장
(6) 저장 되어 있는 데이터를 가져온다. key 값을 통해 value 값을 가져온다.

12.2. 파일 처리

  • 안드로이드는 JAVA 기반으로 만들어져 있기 때문에 기본적인 파일의 입출력 하는 방법은 동일하다. 단, 아래와 같은 사항은 조금 다르기 때문에 참고할 것.

(1) 퍼미션 등록

외부 저장 매체에 접근하기 위해서는 AndroidManifest.xml에 퍼미션을 등록해 주어야 접근 가능

<AndroidManifest.xml>
[php]
… 생략
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
[/php]

(2) 경로 획득 방법

[php]
// 외장 메모리 경로 획득
Environment.getExternalStorageDirectory()
// 내장 메모리 경로 획득
Environment.getDataDirectory();

참고. asset이나 raw 같은 안드로이드 프로젝트 내의 디렉토리 접근 방법
// Uri로 raw 파일경로 획득
Uri audioPath = Uri.parse("android.resource://com.ahope.tutorial/"+ R.raw.rolling);

// Resource를 통한 raw 파일 열기
getResource().openRawResource(R.raw.aaa)

// AssetManager를 통한 asset 디렉토리 접근
AssetManager am = context.getResources().getAssets();
am.open(path);
[/php]