由一张图可知移动存储的大概。

重点是介绍手机内部存储。
一、手机内部存储的特点:

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流的有关知识。