Android中把文件存放在SDCard

12年前
  SDCard介绍

1SDCard可以把他看看做是移动硬盘或U盘,也就是手机的内存卡

2SDCard的创建是在eclipse创建模拟器时随同创建,也可以使用dos命令创建

  SDCard的使用

在程序中访问SDCard的时候需要申请访问的SDCard权限,即是在AndroidManifest.xml中加入SDCard的权限

<!--允许应用程序写到外部存储器-->

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

   <!--允许装入和卸载文件系统的移动存储 -->

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

 

也可以通过AndroidManifest.xml中的可视化视图来创建

 

我们给SDCard赋予权限之后,就可以在activity中往SDCard中写入文件了,具体的代码如下:

package cn.csdn.hr.android.sdcard;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

 

import android.app.Activity;

import android.os.Bundle;

import android.os.Environment;

import android.util.Log;

 

publicclass SdcardActivityextends Activity {

    @Override

    publicvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       //sdcard的目录是 mnt/sdcard 或者是sdcare

       setContentView(R.layout.main);

       //写入数据到sdcard

       try {

           if (Environment.getExternalStorageState().equals(

                  Environment.MEDIA_MOUNTED)) {

           //首先创建一个路径 ,路径的创建在android1.6以上,低版本路径为/sdcard

             

              //通过web得到路径,放置有的版本不一致而出错

              File dirPath = Environment.getExternalStorageDirectory();

              //通过日志的方式输出,我们可在File Explorer中看到输出

              Log.i("MSG",dirPath.toString());

             

              //String dirPath = "/mnt/sdcard";

              //创建写入的文件

              File file = new File(dirPath.toString(),"csdn.txt");

              //写入

              FileOutputStream fos =new FileOutputStream(file);

              fos.write("你好".getBytes("UTF-8"));

              fos.close();

           }

       } catch (FileNotFoundException e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       } catch (UnsupportedEncodingException e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       } catch (IOException e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       }

 

    }

}

 

然后我们就可以在目录下看到所创建的csdn.text文件,目录为:

 Android中把文件存放在SDCard

注:

1Environment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED

2Environment.getExternalStorageDirectory()方法用于获取SDCard的目录,当然要获取SDCard的目录