三个混淆的概念
1.内存 memory<==>设备的容量 内存指设备的容量,内部存储外部存储指概念
2.内部存储 InternalSorage <==> 文件存储在内部存储区,只能当前应用访问到
3.外部存储 ExternalStorage <==> 存储于设备中的特殊位置,位置因为手机不一样而不一样,可能在storage/sdcard或者mnt/xxxx/0下
外部存储的位置可使用Environment.getExternalStorageDirectory().getAbsolutePath()获得
外部目录
1.公有目录(九大公有目录):(DCIM、DOWNLOAD等),直接存储在外部存储的根目录下,需要申请权限
2.私有目录:(Android/data/应用包名),只能被当前应用访问到
说明:
1.在实际开发中不建议在内部存储中存储数据,因为容量很有限
2.在实际开发中经常讲把数据存储到私有目录,便于系统维护,软件卸载了数据就删除了
代码逻辑
写操作
android6.0以下:
①:利用外部getExternalStorageDirectory获取根目录,直接在后面加上想创建的文件
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/text.txt";
②:创建文件,文件若不存在则调用file.createNewFile()
File file = new File(path);
③:向文件中写内容,自然要创建文件输出流的操作,调用输出流的write方法
FileOutputStream out_file = new FileOutputStream(path,true);
String will_write = editInput.getText().toString(); //获取edittext的内容
out_file.write(will_write.getBytes());
安卓6.0以上需要首先动态申请权限,在下一篇文章中讲述如何使用动态申请权限
读操作
①:读文件需要文件输入流
FileInputStream fis = new FileInputStream(path);
//读取文件存储在byte数组中
byte[] b = new byte[1024];
//读取文件内容,并获取读取的长度
int len = fis.read(b);
//将byte转换城字符串供输出
String str = new String(b,0,len);