0
我需要在文件「test.txt」中寫入簡單的文本。無法在外部存儲器的文件中寫入
這是我的代碼:
String SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath();
String FILENAME = "test.txt";
File outfile = new File(SDCARD+File.separator+FILENAME);
if (outfile.exists()) { Log.d("Filename","the file exists"); }
Log.d("Filename",SDCARD+File.separator+FILENAME);
FileOutputStream fos = new FileOutputStream(outfile,true);
fos.write("just a test".getBytes());
fos.close();
在清單中有許可請求:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xrobot.john.texttest">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
和targetsdkversion爲15
logcat的顯示這樣的:
12-01 12:57:26.178 29663-29663/com.xrobot.john.softkeyboard D/Filename﹕ the file exists
12-01 12:57:26.178 29663-29663/com.xrobot.john.softkeyboard D/Filename﹕ /storage/emulated/0/test.txt
和文件text.txt始終爲空。
爲什麼?
不使用'直接getExternalStorageDirectory'。使用'getExternalFilesDir'。它會在sdcard上返回一個只有你的應用可以寫入的路徑(在'/ sdcard/Android/data/yourpackage'下。你如何讀取文件? – Blackbelt
嘗試添加'<使用權限android:name =「android。權限.READ_EXTERNAL_STORAGE「/>' –
而對於棉花糖及以上版本,您必須在運行時取得外部存儲權限 https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous –