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:  }
原文地址:https://www.cnblogs.com/bobodeboke/p/2755947.html