fileinputstream throw filenotfoundexception?

时间:2011-02-01 22:40:44

标签: android filenotfoundexception fileinputstream

我正在尝试打开一个xml文件来解析它,但我正在尝试打开该文件。我的代码是:

        try {
            return new FileInputStream(location);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return null;
        }   

其中location是传递给函数的String。运行我的代码后,我得到:

java.io.FileNotFoundException:/C:/Users/Seth/AndroidWorkspace/UCoupon/res/xml/information.xml(没有这样的文件或目录)

我给出了完整的文件路径,而且我没有拼错任何东西。我做错了什么?

3 个答案:

答案 0 :(得分:2)

您无法从设备或模拟器中读取电脑上的文件。

有关数据存储的介绍,请参阅here,有关访问资源的信息,请参阅here(当您尝试访问res/xml/时,这可能是您感兴趣的内容)

答案 1 :(得分:1)

您正尝试使用PC上的真实路径加载文件。模拟器对您的文件系统一无所知。

将xml放入项目文件夹res/xml/时,可以使用标准资源查找方式解析它:

XmlResourceParser xpp = res.getXml(R.xml.myxml); 其中myxml是没有扩展名

的xml文件的名称

答案 2 :(得分:0)

您无法访问主机系统中的文件(在您的情况下似乎是Windows)。将文件复制到您的设备/模拟器SD卡并从那里读取 - 并且不要忘记使用WRITE_EXTERNAL_STORAGE权限。