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流的有關知識。
重點是介紹手機內部存儲。
一、手機內部存儲的特點:
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流的有關知識。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.