지구화 저장 기술의 로컬 저장

7948 단어 Android
데이터 지속화란 메모리(즉 프로그램)의 순간 데이터를 저장 장치에 저장하는 것을 말한다.
1. 파일 저장: 모든 데이터를 파일에 고스란히 저장한다.
사용 범위: 간단한 텍스트 데이터나 이진 데이터를 저장합니다.복잡한 데이터를 저장하려면 나중에 파일에서 데이터를 다시 해석할 수 있도록 자신의 형식 규범을 정의해야 한다.
장점: 대량의 데이터를 저장할 수 있어 비교적 안정적이고 저장이 편리하며 조작이 간단하고 안전하다(접근 권한을 제어할 수 있기 때문이다).
단점: 파일 업데이트나 형식 변경은 커다란 프로그래밍 작업을 초래할 수 있습니다.사용 방법:
1. 파일에 데이터 저장
Context 클래스는 지정한 파일에 데이터를 저장할 수 있는 OpenFile Output () 방법을 제공합니다.이 방법은 두 개의 파라미터를 수신합니다. 첫 번째 파라미터는 파일 이름입니다. 파일을 만들 때 사용하는 이름이 바로 이 이름입니다. 여기에 지정한 파일 이름은 경로를 포함할 수 없습니다. 모든 파일은/data/fata/files/디렉터리에 기본적으로 저장되어 있기 때문입니다.두 번째 매개변수는 두 가지 모드로 선택할 수 있는 파일의 작업 모드입니다. MODEPRIVATE 및 MODEAPPEND.여기서 MODEPRIVATE는 동일한 파일 이름을 지정할 때 기록된 내용이 원래 파일의 내용을 덮어쓴다는 기본 작동 모드입니다.MODEAPPEND는 파일이 이미 존재하면 파일에 내용을 추가하고 존재하지 않으면 새 폴더를 만듭니다.OpenFile Output () 방법 반환값은 File OutputStream 대상입니다. 이 대상을 얻으면 자바 흐름으로 데이터를 파일에 쓸 수 있습니다.
//    
public void saveData(String data) {

    try {
        //             
        //        //        fileOutput = openFileOutput("data", Context.MODE_PRIVATE);
        //         
        writer = new BufferedWriter(new OutputStreamWriter(fileOutput));
        try {
            //         
            writer.write(data);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (writer != null) {
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}
2.파일에서 데이터 읽기
Context 클래스에서는 파일에서 데이터를 읽을 수 있는 OpenFileInput () 방법을 제공합니다.
그것은 읽을 파일 이름의 매개 변수만 수신합니다.그리고 시스템은 자동으로/data/data/files/디렉터리에 이 파일을 불러오고 File Input Stream 대상을 되돌려줍니다. 이 대상을 얻은 후에 자바 흐르는 방식으로 데이터를 읽을 수 있습니다.
4
//        
public String loadData() {

    try {
        //        fileInput = openFileInput("data");
        //         
        reader = new BufferedReader(new InputStreamReader(fileInput));
        //  StringBuilder     
        content = new StringBuilder();
        String line = "";
        try {
            while ((line = reader.readLine()) != null) {
                content.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    return content.toString();
}
2, SD 카드 스토리지
파일 저장소와 기본적으로 같지만 경로가 다르고 권한을 추가해야 합니다.
android:name = "android.permission.READ EXTERNAL STORAGE"/> android:name = "android.permission.WRITE EXTERNAL STORAGE"/> 첫 번째 권한은 읽기 권한이고 두 번째 권한은 쓰기 권한입니다.만약 두 번째 권한이 성명된다면, 보통 첫 번째 권한은 성명하지 않을 수 있다.
4
//  Environment          sdcard    
File file = Environment.getExternalStorageDirectory();
물론 SD카드를 사용하기 전에 SD카드가 마운트되었는지 여부를 판단하는 것이 좋다. 이후에 SD카드가 마운트된 후에야 SD카드의 읽기와 쓰기를 할 수 있다.
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
      //SD     
}

좋은 웹페이지 즐겨찾기