【问题标题】:fileinputstream throwing filenotfoundexception?文件输入流抛出文件未找到异常?
【发布时间】:2011-02-01 22:40:44
【问题描述】:

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

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

其中位置是传递给函数的字符串。运行我的代码后,我得到:

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

我提供了完整的文件路径,我没有拼错任何东西。我做错了什么?

【问题讨论】:

    标签: android filenotfoundexception fileinputstream


    【解决方案1】:

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

    请参阅here 了解数据存储简介和here 了解访问资源(这可能是您感兴趣的内容,因为您正在尝试访问res/xml/

    【讨论】:

      【解决方案2】:

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

      当你将一个xml放入项目文件夹res/xml/时,你可以使用标准资源查找方式对其进行解析:

      XmlResourceParser xpp = res.getXml(R.xml.myxml); 其中 myxml 是您的 xml 文件的名称,不带扩展名

      【讨论】:

      • 我对此进行了研究,但无法理解它如何与我拥有的代码相匹配。我实现了一个自定义 xml 解析器,很像这里的第 8 个示例:ibm.com/developerworks/opensource/library/x-android/index.html 我正在尝试编写方法 getInputStream() 以便我可以使用行“Xml.parse(this.getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler());"
      • 文章中xml文件是从网上下载的。所以这不是你的情况。 Resource.getXml() 方法返回对 XmlResourceParser 对象的引用。本文在“XML 拉解析器”一节中介绍了这种情况。 XmlResourceParserXmlPullParser 使用相同的接口
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-14
        • 1970-01-01
        • 2022-01-21
        相关资源
        最近更新 更多