FileNotFoundException only in android app

余生颓废 提交于 2019-12-13 04:03:07

问题


How is it that I only get FileNotFoundException in an android application and when I read it from a normal Java application it finds the directory.

I am using the same code exactly.

{
        BufferedReader bufRdr;
         contacts = new ArrayList<Contacts>();


        File randomContactsFile = new File(("C://test//randomcontacts.txt"));
        try {
         bufRdr = new BufferedReader(new FileReader(randomContactsFile));
    String line = null;
         String[] a = new String[2];

            while ((line = bufRdr.readLine()) != null)
                    {
                        a = line.split(",");
                        Contacts c = new Contacts(a[0], a[1], a[1], a[1], a[2]);
                        contacts.add(c);
                    }

        } catch (FileNotFoundException e) {
            Log.d("file not found", "check");
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

This is the exception:

 10-05 08:04:37.151: WARN/System.err(334):
 java.io.FileNotFoundException: /C:/test/randomcontacts.txt (No such
 file or directory) 10-05 08:04:37.151: WARN/System.err(334):     at
 org.apache.harmony.luni.platform.OSFileSystem.open(Native Method)
 10-05 08:04:37.161: WARN/System.err(334):     at
 dalvik.system.BlockGuard$WrappedFileSystem.open(BlockGuard.java:232)
 10-05 08:04:37.161: WARN/System.err(334):     at
 java.io.FileInputStream.<init>(FileInputStream.java:80) 10-05
 08:04:37.161: WARN/System.err(334):     at
 java.io.FileReader.<init>(FileReader.java:42) 10-05 08:04:37.161:
 WARN/System.err(334):     at
 android.test.randomcontacts.RandomContactsActivity.readRandomContacts(RandomContactsActivity.java:177)
 10-05 08:04:37.161: WARN/System.err(334):     at
 android.test.randomcontacts.RandomContactsActivity.onCreate(RandomContactsActivity.java:55)
 10-05 08:04:37.161: WARN/System.err(334):     at
 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
 10-05 08:04:37.161: WARN/System.err(334):     at
 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
 10-05 08:04:37.161: WARN/System.err(334):     at
 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
 10-05 08:04:37.161: WARN/System.err(334):     at
 android.app.ActivityThread.access$1500(ActivityThread.java:117)

Thank you


回答1:


This is this in this part of your code:

File randomContactsFile = new File(("C://test//randomcontacts.txt"));

C://test//randomcontacts.txt is not in unix path format.

If your developing for a phone/tablet you should use something like

/mnt/sdcard/test/randomcontacts.txt

or better:

File rootPath=Environment.getExternalStorageDirectory();
File randomContactsFile = new File(rootPath.getPath()+"/test/randomcontacts.txt");



回答2:


There is probably no C: drice on your android phone.

You can use for your external drive:

Environment.getExternalStorageDirectory() + /* file */;


来源:https://stackoverflow.com/questions/7658389/filenotfoundexception-only-in-android-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!