android外部存储(ExternalStorage)

三个混淆的概念

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);

  

 

猜你喜欢

转载自www.cnblogs.com/zhuzbyin/p/ghst_zby4.html