andrid向sdcard写入文件
1,在配置文件中写入操作权限
<!-- 想sdcard中创建或者删除文件的权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<!-- 向sdcard中写入数据的权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
2,判断sdcard是否存在
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED
如果返回true说明sdcard存在并且可以进行读和写入
3,获得sdcard的路径
Environment.getExternalStorageDirectory();
4,不能直接在非sdcard的根目录创建文件,而是需要先创建目录,再创建文件;
(补充,获得应用本身data目录的方法是this.getFilesDir();不过这种情况与sdcard不同的是,这种方式中文件默认是私有的,而后者则默认可被所有的程序访问)
5,可以参考别人的一段代码
变量声明:
1: private final static String PATH = "/sdcard/digu";
2: private final static String FILENAME = "/notes.txt";
向sdcard写文件
1: /**
2: * 写文件
3: */
4: private void onWrite() {
5: try {
6: Log.d(LOG_TAG, "Start Write");
7: //1.判断是否存在sdcard
8: if (Environment.MEDIA_MOUNTED.equals(Environment
9: .getExternalStorageState())) {
10: //目录
11: File path = new File(PATH);
12: //文件
13: File f = new File(PATH + FILENAME);
14: if(!path.exists()){
15: //2.创建目录,可以在应用启动的时候创建
16: path.mkdirs();
17: }
18: if (!f.exists()) {
19: //3.创建文件
20: f.createNewFile();
21: }
22: OutputStreamWriter osw = new OutputStreamWriter(
23: new FileOutputStream(f));
24: //4.写文件,从EditView获得文本值
25: osw.write(editor.getText().toString());
26: osw.close();
27: }
28: } catch (Exception e) {
29: Log.d(LOG_TAG, "file create error");
30: }
31: }