在AndroidManifset.xml文件进行权限设置
<!-- SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 向SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
接着在使用SDcard进行读写的时候 会用到Environment类下面的几个静态方法:
1:getDataDirectory() 获取到Android中的data数据目录(sd卡中的data文件夹)
2:getDownloadCacheDirectory() 获取到下载的缓存目录(sd卡中的download文件夹)
3:getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcard(/storage/sdcard0)
4:getExternalStorageState() 获取外部设置的当前状态 一般指SDcard,比较常用的应该是 MEDIA_MOUNTED(SDcard存在并且可以进行读写)还有其他的一些状态,可以在文档中进行查找。
5:getRootDirectory() 获取到Android Root路径
try { String sd=Environment.getExternalStorageDirectory().getAbsolutePath();//获取sd卡路径 BufferedOutputStream out=new BufferedOutputStream(new FileOutputStream(sd+"/123.txt",true));//sd卡 BufferedOutputStream out1=new BufferedOutputStream(Context.openFileOutput("123.txt",Context.MODE_APPEND));//内部存储 out.write("lhzlz".getBytes()); out1.write("lhzlz1".getBytes()); out.close(); out1.close(); } catch (IOException e1) { e1.printStackTrace(); }
他们输出的位置分别是
storage\emulated\0\123.txt
data\data\com.******.******\files\123.txt