Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android數據存儲

Android數據存儲

編輯:關於Android編程

概述

Android開發中,經常會接觸到數據存儲, 故本文詳細講述下關於數據存儲的知識,希望能夠加深理解,時常回顧,由於本人才疏學淺,或有不當之處,望批評指教

數據存儲方式

文本存儲 SharedPreferences SQLite數據庫 ContentProvider

文本存儲

文本存儲比較簡單,不會對數據做格式化處理,適合存儲一些簡單的文本數據,默認情況下,保存到內部存儲的文件是應用的私有文件,其他應用(和用戶)不能訪問這些文件。 當用戶卸載您的應用時,這些文件也會被移除。
Context類提供了兩種方法打開數據文件的IO流

文本寫入
FileOutputStream openFileOutput (String name,  int mode)

該方法將數據輸出到文件裡,方法接受兩個參數,第一個參數是文件名,注意文件名不可以包含路徑,因為所有的文件都是默認存儲到/data/data//files目錄下的,基於該文件名創建文件;第二個參數是操作模式,
有兩種模式可選
* MODE_PRIVATE: 默認的操作模式,表示私有數據,只能被本應用訪問,並且寫入內容會覆蓋源文件內容
* MODE_APPEND: 表示若文件已存在,則往文件中追加內容,否則創建新文件。

    private void write(){
        String data = "舉頭望明月,低頭思故鄉";
        BufferedWriter bufferedWriter = null;
        try {
            FileOutputStream fileOutputStream = openFileOutput("data", MODE_PRIVATE);
            bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
            bufferedWriter.write(data);
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try {
                if(bufferedWriter != null){
                    bufferedWriter.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
文本讀取
FileInputStream openFileInput (String name)

該方法從文件中讀取數據,直接受一個參數,即要讀取的文件名,然後系統會自動到/data/data//files/目錄下加載該文件,並返回一個FileInputStream對象

    private String read(){
        BufferedReader bufferedReader = null;
        StringBuilder data = new StringBuilder();
        try{
            FileInputStream fileInputStream = openFileInput("data");
            bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
            String line = "";
            while ((line = bufferedReader.readLine()) != null){
                data.append(line);
            }
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try {
                if(bufferedReader != null){
                    bufferedReader.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
        }
        return data.toString();
    }

SharedPreferences

SharedPreferences 是基於XML文件存儲的鍵值對保存數據的,並且支持多種不同的數據類型。文件存放在/data/data//shared_prefs/目錄下。當然,要使用SharedPreferences存儲數據,首先要忽的SharedPreferences對象,可通過以下兩個方法之一:

getSharedPreferences() - 接受兩個參數,第一個是文件名稱,第二個指定操作模式 getPreferences() - 只接受操作模式參數,因只在Activity類中獲取,故類名為文件名。
寫入操作
調用SharedPreferences對象的edit()方法獲取SharedPreferences.Editor對象 向SharedPreferences.Editor對象中添加數據,使用 putBoolean() 和 putString() 等方法 調用commit()或apply()方法提交
SharedPreferences.Editor editor = getSharedPreferences("data", MODE_APPEND).edit();
editor.putBoolean("flag", true);
editor.putInt("age", 22);
editor.putString("name", "hao");
editor.commit();
讀取操作
獲取SharedPreferences對象 使用getXXX()方法讀取數據
SharedPreferences sharedPreferences = getSharedPreferences("data", MODE_APPEND);

SQLite數據庫和ContentProvider內容較多,故放在單獨的博客中講解, 後續整理,加油。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved