我想通过我的应用程序在android studio中创建一个.txt文件。 SDK版本10,我的模拟器是Galaxy S7(我不确定这是否有问题)。java.io.FileNotFoundException:/ storage/emulated/0/
我写了下面的类,它不断给我的文件没有例外错误。我搜索了很多并搜索了这个论坛,但他们都没有工作。
请帮忙。
我的班级..
public static void StoreData(String input) throws IOException {
File Root = Environment.getExternalStorageDirectory();
Log.d("hello",Root.getAbsolutePath());
File Dir = new File(Root.getAbsoluteFile() + "/testfolder");
if (!Dir.exists()) {
Log.d("hello","doesn't exists "+Root.getAbsolutePath());
Dir.mkdir();
}
File file = new File(Dir, "Contacts_Google_Sheets.txt");
FileOutputStream fileoutputstream = new FileOutputStream(file);
fileoutputstream.write(input.getBytes());
fileoutputstream.close();
Log.d("hello", "writing complete");
}
它不断给人以下错误:
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/testfolder/Contacts_Google_Sheets.txt (No such file or directory)
W/System.err: at java.io.FileOutputStream.open(Native Method)
W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:169)
W/System.err: at com.therock.app3_contact_list_googlesheet_public.FileOperations.StoreData(FileOperations.java:55)
W/System.err: at com.therock.app3_contact_list_googlesheet_public.GetDataAsyncTask.doInBackground(GetDataAsyncTask.java:64)
W/System.err: at com.therock.app3_contact_list_googlesheet_public.GetDataAsyncTask.doInBackground(GetDataAsyncTask.java:33)
W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:305)
W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
W/System.err: at java.lang.Thread.run(Thread.java:761)
E/EGL_emulation: tid 3410: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH)
W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x8fe424c0, error=EGL_BAD_MATCH
确保你有'WRITE_EXTERNAL_STORAGE'权限,包括[在运行时请求它](https://developer.android.com/training/permissions/requesting.html)。 – CommonsWare
我的android清单文件已经具有以下权限.. –
我读取运行时权限需要SDK版本23+ –