SD卡上读写文件

来源:互联网 发布:游戏开服数据 编辑:程序博客网 时间:2024/05/17 07:55

读写SD卡上的文件:

如果存储大型文件,例如视频、音乐、文档等。存储到手机内存中是不明智的,一般我们会把这些大型文件存储在SD卡中。

 首先如果要在程序中使用sdcard进行存储,我们必须要在AndroidManifset.xml文件进行下面的权限设置:
  在AndroidManifest.xml中加入访问SDCard的权限如下:
 <!-- 在SDCard中创建与删除文件权限 -->
  <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
 <!-- 往SDCard写入数据权限 -->
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
     
    接着我们在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法  
Environment 是一个提供访问环境变量的类。
getDataDirectory() 
 获取到Androi中的data数据目录 
getDownloadCacheDirectory() 
获取 Android 下载/缓存内容目录。
getExternalStorageDirectory()
获取到外部存储的目录 一般指SDcard 
getExternalStorageState() 
获取外部设置的当前状态 一般指SDcard,
         android系统中对于外部设置的状态,我们比较常用的应该是 
MEDIA_BAD_REMOVAL -->表明SDCard 被卸载前己被移除 
MEDIA_CHECKING  -->表明对象正在磁盘检查。 
MEDIA_MOUNTED  -->表明对象是否存在并具有读/写权限 
MEDIA_MOUNTED_READ_ONLY  -->表明对象权限为只读 
MEDIA_NOFS -->  表明对象为空白或正在使用不受支持的文件系统。 
MEDIA_REMOVED -->   如果不存在 SDCard 返回 
 MEDIA_SHARED-->       如果 SDCard 未安装,并通过 USB 大容量存储共享 返回
MEDIA_UNMOUNTABLE-->   返回 SDCard 不可被安装如果 SDCard 是存在但不可以被安装
MEDIA_UNMOUNTED-->        返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装
getRootDirectory() 
获取到Android Root路径 即根目录
isExternalStorageEmulated() 
 返回Boolean值判断外部设置是否有效 
isExternalStorageRemovable() 
返回Boolean值,判断外部设置是否可以移除
getExternalStoragePublicDirectory(String type)
取一个高端的公用的外部存储器目录来摆放某些类型的文件



SD卡读写的步奏

step 1:读写前先判断SD卡是否存在。且可以读写。
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
step 2:获取SD卡外部目录以及SD卡路径
Environment.getExternalStorageDirectory().getCanonicalPath();
Environment.getExternalStorageDirectory().getAbsolutePath();
step 3:对文件进行读写操作
与上面的文件读写操作一样
step 4:AndroidManifest中添加SD卡权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
1 0
原创粉丝点击