[Android API 학습] 데이터 스토리 지 막 번역 (1)
데이터 저장 (데이터 저장)
Android 는 지속 적 인 응용 데 이 터 를 저장 하기 위해 여러 가지 선택 할 수 있 는 방법 을 제공 합 니 다.특정한 수 요 를 바탕 으로 해결 방안 을 선택 할 수 있 습 니 다. 예 를 들 어 데이터 가 개인 적 인 것 인지, 아니면 다른 응용 프로그램 (사용자 와) 에 공 개 된 것 인지, 그리고 데 이 터 를 저장 하 는 데 얼마나 큰 공간 이 필요 한 지 등 입 니 다.
선택 한 데이터 저장 방식 은 다음 과 같 습 니 다.
Shared Preferences
공유 선 호
'키 - 값 쌍' 의 형식 으로 개인 적 인 기초 데 이 터 를 저장 합 니 다.
Internal Storage
내부 기억 장치
개인 데 이 터 를 장치 메모리 에 저장 하 다.
External Storage
외부 기억 장치
공유 하 는 외부 메모리 에 공유 데 이 터 를 저장 합 니 다.
SQLite Databases
SQLite 데이터베이스
개인 데이터베이스 로 구조 화 된 데 이 터 를 저장 하 다.
Network Connection
네트워크 연결
자신의 서버 를 통 해 데 이 터 를 네트워크 에 저장 하 세 요.
Android 는 다른 프로그램 에 개인 데 이 터 를 노출 하 는 경 로 를 제공 합 니 다.
content provider 。콘 텐 츠 provider 는 프로그램 데 이 터 를 노출 하 는 read / write 인 터 페 이 스 를 선택 할 수 있 는 구성 요소 입 니 다. 도입 가능 한 모든 약속 을 따 릅 니 다.콘 텐 츠 provider 사용 에 대한 더 많은 정 보 는 찾 아 보 세 요.
Content Providers 문서
공유 환경 설정 사용 (공유 환경 설정 사용)
SharedPreferences 클래스 는 '키 - 값 쌍' 형식 으로 지속 적 인 기본 데 이 터 를 저장 하고 얻 을 수 있 도록 일반적인 프레임 워 크 를 제공 합 니 다.사용 할 수 있 습 니 다.
SharedPreferences 모든 기본 데 이 터 를 저장 합 니 다: boolean, float, int, long 과 String.이 데 이 터 는 크로스 사용자 대화 (프로그램 이 죽 더 라 도) 에 저 장 됩 니 다.
User Preferences
Shared preferences are not strictly for saving "user preferences," such as what ringtone a user has chosen. If you're interested in creating user preferences for your application, see
PreferenceActivity
, which provides an Activity framework for you to create user preferences, which will be automatically persisted (using shared preferences). 애플 리 케 이 션 을 가 져 오 려 면
SharedPreference 대상 은 다음 과 같은 두 함수 중 하 나 를 사용 합 니 다.
getSharedPreferences() - 이름 으로 인식 할 선 호 하 는 파일 이 여러 개 필요 하 다 면 이 함 수 를 사용 하 십시오. 이름 은 첫 번 째 매개 변 수 를 통 해 설정 하 십시오.
getPreferences() - 만약 당신 의 Activity 가 선 호 하 는 파일 만 필요 하 다 면 이 함 수 를 사용 하 십시오.이것 은 당신 의 Activity 만 의 선 호 파일 이기 때문에 파일 이름 을 제공 할 필요 가 없습니다.
기록 값:
1. edit() 함 수 를 호출 하여 SharedPreferences.Editor 대상 을 얻 습 니 다.
2. putBoolean(), putString() 등 함수 로 수 치 를 추가 합 니 다.
3. commit() 함 수 를 통 해 작업 을 제출 하고 확인 합 니 다.
수치 읽 기, 사용
SharedPreferences 중의
getBoolean() 、
getString() 등 함수.
이것 은 하나의 예 입 니 다. 계산기 의 버튼 음소 거 모드 에 선 호 하 는 것 을 저장 합 니 다.
public class Calc extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
@Override
protected void onCreate(Bundle state) {
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent);
}
@Override
protected void onStop() {
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", mSilentMode);
// Commit the edits!
editor.commit();
}
}
내부 메모리 (Using the Internal Storage) 를 사용 하면 장치 의 내부 메모리 에 파일 을 직접 저장 할 수 있 습 니 다.기본적으로 내부 메모리 에 저 장 된 파일 은 응용 프로그램 에 개인 적 이 고 다른 응용 프로그램 에 접근 할 수 없습니다 (사용자 도 안 됩 니 다).사용자 가 응용 프로그램 을 마 운 트 해제 하면 이 파일 들 은 삭 제 됩 니 다.
내부 메모리 에 개인 파일 을 만 들 고 기록 하려 면:
1. 파일 이름과 처리 모드 를 통 해 함수 호출 openFileOutput().돌아 온 것 은 대상 FileOutputStream 이다.
2. write() 함 수 를 사용 하여 파일 을 기록 합 니 다.
3. close() 함 수 를 사용 하여 흐름 을 닫 습 니 다.
For example:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
MODE_PRIVATE 파일 을 만 들 고 개인 적 으로 사용 할 것 입 니 다.다른 사용 가능 한 모드 는:
MODE_APPEND 、
MODE_WORLD_READABLE
와MODE_WORLD_WRITEABLE 。
내부 메모리 에서 파일 을 읽 으 려 면:
1. openFileInput() 함 수 를 호출 하고 파일 이름 을 전달 하여 읽 습 니 다.돌아 온 것 은 대상 FileInputStream 이다.
2. read() 함수 로 파일 의 바 이 트 를 읽 습 니 다.
3. 그리고 close() 함 수 를 사용 하여 흐름 을 닫 습 니 다.
알림: 컴 파일 할 때 정적 파일 을 응용 프로그램 에 저장 하려 면 프로젝트 의 res / raw / 에 파일 을 저장 하 십시오. 목록 아래.openRawResource() 함 수 를 사용 하면 R. raw. < filename > 자원 ID 를 전달 할 수 있 습 니 다.이 함 수 는 파일 을 읽 을 수 있 는 InputStream 대상 을 되 돌려 줍 니 다. (원본 파일 을 고 칠 수 없습니다.)
캐 시 파일 저장 (cache 파일 저장) 영구적 으로 저장 하 는 것 이 아니 라 데 이 터 를 캐 시 하려 면 사용 해 야 합 니 다.
getCacheDir()
내부 메모리 에 임시 캐 시 파일 을 저장 하 는 디 렉 터 리 를 엽 니 다.
File
대상
장치 의 내부 저장 공간 이 비교적 낮 을 때 안 드 로 이 드 는 이 캐 시 파일 을 삭제 하여 공간 을 되 찾 을 수 있 습 니 다.어쨌든, 너 는 시스템 에 의존 해서 너 를 위해 이 파일 들 을 비 워 서 는 안 된다.항상 스스로 캐 시 파일 을 유지 하고 1MB 와 같은 합 리 적 인 공간 소 모 를 유지 해 야 합 니 다.사용자 가 응용 프로그램 을 마 운 트 해제 하면 이 파일 들 은 삭 제 됩 니 다.
기타 유용 한 함수 (Other useful methods)
getFilesDir()
내부 파일 에 저 장 된 시스템 디 렉 터 리 의 절대 경 로 를 가 져 옵 니 다.
getDir()
내부 메모리 공간 에 존재 하 는 디 렉 터 리 를 만 들 거나 엽 니 다.
deleteFile()
내부 메모리 에 저 장 된 파일 을 삭제 합 니 다.
fileList()
현재 저 장 된 파일 의 배열 을 되 돌려 줍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
최근 문제가 되고 있는 서버 스레드 중단 문제 해결우리의 응용 프로그램은 인터넷 하드디스크와 같은 다운로드 도구로 사이트의 방문량이 비교적 적지만 문제가 우리를 계속 괴롭히고 있다. 바로was 서버가 일정 시간 간격으로 라인을 끊고 시간이 길고 짧으며 5분 안에 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.