Android学习系列-把文件保存到SD卡上面(5)
一般多媒体文件,大文件需要保存到SD卡中。关键点如下:
1,SD卡保存目录:mnt/sdcard,一般采用Environment.getExternalStorageDirectory()方式。

public void saveToSDCard(String filename, String content)throws Exception {
   File file = new File(Environment.getExternalStorageDirectory(), filename);//指定文件存储目录为SD卡,文件名
   FileOutputStream outStream = new FileOutputStream(file);//输出文件流
   outStream.write(content.getBytes());
   outStream.close();
  }


2,需要申请权限,AndroidManifest.xml中配置权限<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="cn.itcast.files"
       android:versionCode="1"
       android:versionName="1.0">
     <application android:icon="@drawable/icon" android:label="@string/app_name">
          <uses-library android:name="android.test.runner" />
         
         <activity android:name=".MainActivity"
                   android:label="@string/app_name">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>    </application>
     <uses-sdk android:minSdkVersion="8" />
 <instrumentation android:name="android.test.InstrumentationTestRunner"
   android:targetPackage="cn.itcast.files" android:label="Tests for My App" />
   
   <!-- 在SDCard中创建与删除文件权限 -->
 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
 <!-- 往SDCard写入数据权限 -->
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   
   
 </manifest>


3.判断SD卡是否存在:Environment.getExternalStorageState().(getApplicationContext());

代码示例:

try {
     //判断SDCard是否存在,并且可以读写
     if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
      service.saveToSDCard(filename, content);
      Toast.makeText(getApplicationContext(), R.string.success, 1).show();
     }else{
      Toast.makeText(getApplicationContext(), R.string.sdcarderror, 1).show();
     }    
    } catch (Exception e) {
     Toast.makeText(getApplicationContext(), R.string.fail, 1).show();
     e.printStackTrace();
    }


4.总结
关键点:指定SD卡存放文件目录,判断sd卡是否存在,配置SDK访问权限。
一般是将大文件存储到SD卡上。