मैं एंड्रॉइड विकास के लिए नया हूं और कुछ फाइल आईओ करने की कोशिश कर रहा हूं। जब भी मैं कोड के इस खंड चलाएँ:एंड्रॉइड - त्रुटि खोलने वाली फ़ाइल ने अभी बनाया
File meta = new File(context.getAppContext().getFilesDir(),"meta");
meta.mkdirs();
File dir = new File(meta,"subdir");
File imageFile = new File(dir,"filename");
Log.d("test",imageFile.getAbsolutePath());
FileOutputStream outputStream = new FileOutputStream(imageFile);
मैं इस त्रुटि मिलती है:
java.io.FileNotFoundException: /data/data/com.example.android.networkusage/files/meta/Greg and The Morning Buzz/artwork30.jpg: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:406)
at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
at com.example.android.networkusage.Podcast.downloadArtworkFromUrl(Podcast.java:117)
at com.example.android.networkusage.Podcast.<init>(Podcast.java:93)
at com.example.android.networkusage.JSONParser.parse(JSONParser.java:113)
at com.example.android.networkusage.NetworkActivity.loadXmlFromNetwork(NetworkActivity.java:240)
at com.example.android.networkusage.NetworkActivity.access$100(NetworkActivity.java:65)
at com.example.android.networkusage.NetworkActivity$DownloadXmlTask.doInBackground(NetworkActivity.java:203)
at com.example.android.networkusage.NetworkActivity$DownloadXmlTask.doInBackground(NetworkActivity.java:198)
at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
at libcore.io.IoBridge.open(IoBridge.java:390)
... 16 more
लॉग भी निर्देश दिया है, तो फ़ाइल मौजूद होना चाहिए के रूप में फ़ाइल के पथ बाहर प्रिंट! ये क्यों हो रहा है?
इसके अलावा, मेरे ऐप आंतरिक और बाह्य लिखने विशेषाधिकार है।
किसी भी भाग्य @anonymouse तक कोशिश फ्लॉप? –
हाय केविन, खेद है कि मुझे जवाब देने में बहुत लंबा लगा। आपका जवाब काम किया। धन्यवाद! – anonymouse