Android數據存儲_文件存儲

        Android數據存儲的方式有種,主要有三種。分別爲:文件存儲,SharedPreference存儲以及數據庫存儲

我們這裏主要講解文件存儲。

        文件存儲是Android種最基本的一種數據存儲方式,它不對存儲內容進行任何的格式話處理,所有的數據都是原封不動的保存到文件中,因此他比較適合簡單的文本數和二進制數據。比如log日誌。如果想要保存一些較爲複雜的文本數據,需要定義一套自己的格式規範。方便自己取出後解析。

保存數據:openFileOutput(String name, int mode)

name:@param name The name of the file to open; can not contain path * separators. 文件名字

          默認路徑就是:/data/data/包名/files/你的name

非root是無法查看的,需要用到ADM查看

打開Adroid Device Monitor ,找到圖中的1 File Explorer 然後找到下面對應的包名和你的文件名,選中點擊圖中的2導出到電腦就可以查看了。

mode:

          MODE_PRIVATE,//默認操作模式 ,當指定同樣文件名的時候會覆蓋原有文件內容。

          MODE_WORLD_READABLE, //允許其他程序對我們的文件進行修改,過於危險 Android4.2以後已被廢除

          MODE_WORLD_WRITEABLE,//允許其他程序對我們的文件進行修改,過於危險 Android4.2以後已被廢除

          MODE_APPEND,//如果文件不存在就創建文件,如果存在就往後面追加。

獲取數據 openFileInput(String name)

name:@param name The name of the file to open; can not contain path separators. 文件名字

 

一個小demo實現:輸入一個文本,退出保存。再次進入獲取。如下

保存文件:

public void save(String s) {
    BufferedWriter bufferedWriter = null;
    try {
        FileOutputStream mydata = openFileOutput("mydata", MODE_PRIVATE);
        bufferedWriter = new BufferedWriter(new OutputStreamWriter(mydata));
        bufferedWriter.write(s);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Log.d("TAG", "FileNotFoundException:" + e.getMessage());
    } catch (IOException e) {
        e.printStackTrace();
        Log.d("TAG", "IOException:" + e.getMessage());
    } finally {
        if (bufferedWriter != null) {
            try {
                bufferedWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
                Log.d("TAG", "IOException:" + e.getMessage());
            }
        }
    }
}

獲取文件:

public String load() {
    StringBuffer sb = new StringBuffer();
    BufferedReader bufferedReader = null;
    try {
        FileInputStream mydata = openFileInput("mydata");
        bufferedReader = new BufferedReader(new InputStreamReader(mydata));
        String line = "";
        while ((line = bufferedReader.readLine()) != null) {
            sb.append(line);
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (bufferedReader != null) {
            try {
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return sb.toString();
}

轉發表明出處https://blog.csdn.net/qq_35698774/article/details/106660663

點擊下載源碼

android互助羣:

感謝:郭霖的《第一行代碼 第二版》

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章