I am trying to create a .txt file through my app in android studio. SDK version 10, my emulator is galaxy S7 (I am not sure if this matters at all).
I have written the following class and it keeps on giving me file no exception error. I have googled a lot and searched this forum but none of them is working.
Please help.
My Class..
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");
}
It keeps on giving following error:
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
Go to the homepage. Select "Internal Storage". At the top of the screen, you will see that the path you are in is the storage/emulated/0 folder.
java.io.FileNotFoundException. Signals that an attempt to open the file denoted by a specified pathname has failed. This exception will be thrown by the FileInputStream , FileOutputStream , and RandomAccessFile constructors when a file with the specified pathname does not exist.
You have to check the permission from runtime. If you want to just test your code right away, go to device's settings, apps, your_app, then choose permissions from there. Allow the permissions. And you're good to go
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With