[置顶] Android学习系列-把文件保存到SD卡上面(6)

时间:2021-12-26 15:12:56

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卡上。