.
最近學習到android的文件存儲,內部存儲和外部存儲(sd卡存儲),在SD卡存儲這一塊創建文件老失敗,各種搜索,折騰了一個下午加晚上終於弄明白問題所在,以此記錄下來或對他人有所幫助。
一、在AndroidManifest.xm中添加權限
<!-- SDCard中創建與刪除文件權限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 向SDCardd讀寫入數據權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
然而,並沒有軟用…
先看寫入文件代碼:
//寫入文件的處理
private void write(String content){
String FILE_NAME = "sdFile.txt";
//判斷sd卡是否存在
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
try {
//創建目標文件 /storage/emulated/0/sdFile.txt
File targetFile=new File(Environment.getExternalStorageDirectory().getCanonicalPath()+"/"+FILE_NAME);
Log.i("zzw",targetFile.getAbsolutePath());
if(targetFile.exists()){
Log.i("zzw",targetFile.getAbsolutePath()+"創建成功!");
}else{
Log.i("zzw",targetFile.getAbsolutePath()+"創建失敗!");
//targetFile.createNewFile();
}
//下面是將內容寫入文件
FileOutputStream fos;
try {
fos = new FileOutputStream(targetFile);
fos.write(content.getBytes());
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
.
運行結果:
文件夾中沒有目標文件sdFile.txt生成:
二、我的自帶模擬器安卓版本爲7.0,需手動授權
先看看模擬器安卓版本:
試試手動開權限:
果然創建成功:
看看文件夾:有了!
這麼一個小問題,坑了我這麼久,****!
參考:https://blog.csdn.net/xdqkid/article/details/53745569