【问题标题】:FileNotFoundException only in android appFileNotFoundException 仅在 android 应用程序中
【发布时间】:2011-10-05 08:07:14
【问题描述】:

为什么我只在 android 应用程序中得到 FileNotFoundException,当我从普通 Java 应用程序中读取它时,它会找到目录。

我使用的是完全相同的代码。

{
        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();
        }

这是个例外:

 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)

谢谢

【问题讨论】:

    标签: java android file filenotfoundexception


    【解决方案1】:

    你的安卓手机上可能没有 C:drice。

    您可以用于您的外部驱动器:

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

    【讨论】:

    • 所以它只查找android目录中的文件?你不能使用外部驱动器?
    • 你可以使用外置驱动器,但是android不会识别它是你的“C”驱动器,你必须先搜索它。
    【解决方案2】:

    这是您代码的这一部分:

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

    C://test//randomcontacts.txt 不是 unix 路径格式。

    如果您为手机/平板电脑开发,您应该使用类似

    /mnt/sdcard/test/randomcontacts.txt

    或更好:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多