安卓课程二十六 往安卓sd卡写数据并获取sd卡内存

首先需要获得安卓的根目录:

public String getSDPath(){ 
  File sdDir = null; 
  boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED);   //判断sd卡是否存在 
  if (sdCardExist)      //如果SD卡存在,则获取跟目录
  {                               
   sdDir = Environment.getExternalStorageDirectory();//获取跟目录 
  }   
  return sdDir.toString();   
}
public void saveToSDCard(String filename,String content) throws Exception{
  String sdkPath = getSDPath();
  if(sdkPath == null) return;
  File file=new File(sdkPath, filename);
  OutputStream out=new FileOutputStream(file);
  out.write(content.getBytes());
  out.close();
 } 
 public boolean  couldWrite(){
   String sdkPath = getSDPath();
   if(sdkPath == null) return false;
   return true;
 }

 获得权限

<!-- 在SDCard中创建于删除文件的权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard中写入数据的权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

下面对Environment 类 常量进行讲解一下:

MEDIA_BAD_REMOVAL
解释:返回getExternalStorageState() ,表明SDCard 被卸载前己被移除

MEDIA_CHECKING
解释:返回getExternalStorageState() ,表明对象正在磁盘检查。

MEDIA_MOUNTED
解释:返回getExternalStorageState() ,表明对象是否存在并具有读/写权限

MEDIA_MOUNTED_READ_ONLY
解释:返回getExternalStorageState() ,表明对象权限为只读

MEDIA_NOFS
解释:返回getExternalStorageState() ,表明对象为空白或正在使用不受支持的文件系统。

MEDIA_REMOVED
解释:返回getExternalStorageState() ,如果不存在 SDCard 返回

MEDIA_SHARED
解释:返回getExternalStorageState() ,如果 SDCard 未安装 ,并通过 USB 大容量存储共享 返回

MEDIA_UNMOUNTABLE
解释:返回getExternalStorageState() ,返回 SDCard 不可被安装 如果 SDCard 是存在但不可以被安装

MEDIA_UNMOUNTED
解释:返回getExternalStorageState() ,返回 SDCard 已卸掉如果 SDCard 是存在但是没有被安装
Environment 常用方法
方法:getDataDirectory()
解释:返回 File ,获取 Android 数据目录。

方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android 下载/缓存内容目录。

方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即 SDCard

方法:getExternalStoragePublicDirectory(String type)
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件

方法:getExternalStorageState()
解释:返回 File ,获取外部存储设备的当前状态

方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录

 获取手机内存相关

  StatFs 类

  StatFs 一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况

StatFs 常用方法:
getAvailableBlocks()
解释:返回 Int ,获取当前可用的存储空间

getBlockCount()
解释:返回 Int ,获取该区域可用的文件系统数

getBlockSize()
解释:返回 Int ,大小,以字节为单位,一个文件系统

getFreeBlocks()
解释:返回 Int ,该块区域剩余的空间

restat(String path)
解释:执行一个由该对象所引用的文件系统

猜你喜欢

转载自01jiangwei01.iteye.com/blog/1861250