Android19之移動存儲(內部存儲)

         由一張圖可知移動存儲的大概。
圖片


重點是介紹手機內部存儲。
                一、手機內部存儲的特點:
圖片
1、存放本應用中的私有數據       
2、當應用卸載時,/data/data/《包名》/... 這個目錄會同步被刪除,即手機內部存儲的文件會被刪除       
3、存放位置:data/data/《包名》/files/...    
            
            二、關注點:
1、Context.openFileOutput(String name, int mode):寫數據到文件
            作用:打開一個文件,返回一個FileOutputStream
                        -name:文件名,有則打開,無則創建
                        -mode:文件的操作模式:兩種 1、Context.MODE_PRIVATE :MOREN 默認模式 ,私有模式,覆蓋模式     2、Context.MODE_APPEND:追加模式,私有模式
                        -文件的存儲的位置:data/data/<包名>/files  存放的是私有數據
                        -return:FileOutputStream

2、 Context.openFileInput(String name) 從手機內部存儲中讀取文件
         - 作用:從手機內部存儲中讀取文件
         - name :文件名
         - FileInputStream

3、 context.getCacheDir()    方法用於獲取/data/data/<package name>/cache目錄
         - 返回的是File對象  (文件夾)

4、context.getFilesDir()     方法用於獲取/data/data/<package name>/files目錄、、
          - 返回的是File對象  (文件夾)

實例:向內存存儲數據和從內存提取數據
效果圖如下:輸入文件名,文件體,點擊寫入內存,
    圖片
           實現代碼:
    //寫內存,寫數據到手機內部存儲中
    public void writeToPhone(View v){
        //trim():將字符串的前後空白字段切除。
        //mFilenameEdt:定義的全局變量。代表文件名的EditText   mBodyEdt:代表文件提的EditText
        String filename = mFilenameEdt.getText().toString().trim();
        String body = mBodyEdt.getText().toString().trim();
       
        try {
            /**
             * Context.MODE_APPEND:追加模式,私有模式
             * Context.MODE_APRIVATE:默認模式(覆蓋模式,私有模式)
             */
            FileOutputStream fos = context.openFileOutput(filename, Context.MODE_APPEND);
            fos.write(body.getBytes());
            fos.close();
            Toast.makeText(context, "寫數據到手機內部存儲成功", 0).show();
        } catch (Exception e) {
            e.printStackTrace();
        }
       
    }
圖片
輸入文件名,就能從相對應的文件名中提取出數據

圖片

圖片



從內存中提取數據有兩種方式,如上所示,利用緩衝流或者直接用字節輸入流。


總結:學會了如何將數據存儲內存中和從內存中提取數據。並且複習了IO流的有關知識。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章