一 SDCard介绍
1.SDCard可以把他看看做是移动硬盘或U盘,也就是
手机的
内存卡
2.SDCard的创建是在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 SdcardActivity extends 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";
// 创建写入的文件
www.atcpu.com 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文件,目录为:
注:
1.Environment.getExternalStorageState()方法用于获取SDCard的状态,如果手机装有SDCard,并且可以进行读写,那么方法返回的状态等于Environment.MEDIA_MOUNTED。
2.Environment.getExternalStorageDirectory()方法用于获取SDCard的目录,当然要获取SDCard的目录