【问题标题】:Parsing SD Card in Android在 Android 中解析 SD 卡
【发布时间】:2013-04-16 03:18:29
【问题描述】:

我的代码在sourceURL 声明处停止并抛出异常:

java.net.MalformedURLException:找不到协议:mnt/sdcard/Android/data...

URL sourceUrl = new URL(Environment.getExternalStorageDirectory() + "/Android/data/com.esentral.testdev/"+"temp2.xml");

MyXMLHandler myXMLHandler = new MyXMLHandler();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));

这里的情况是否是某种 URL-String 的错误转换?如果是这样,是否有通用的解决方法? 我听说 SAX 是要走的路,但它可能会使事情进一步复杂化。谢谢。

【问题讨论】:

    标签: android url xml-parsing


    【解决方案1】:

    您必须指定协议,例如 http、ftp、文件等。这里您是从 sdcard 访问它,所以它会在整个路径之前为 "file://"

    现在用这个修改你的代码sn-p,

    URL sourceUrl = new URL("file://" + Environment.getExternalStorageDirectory() + "/Android/data/com.esentral.testdev/"+"temp2.xml");
    MyXMLHandler myXMLHandler = new MyXMLHandler();
    xr.setContentHandler(myXMLHandler);
    xr.parse(new InputSource(sourceUrl.openStream()));
    

    【讨论】:

      【解决方案2】:

      有效的 URL 以协议开头。 Environment.getExternalStorageDirectory() 没有返回协议,它返回文件路径。您需要将文件协议添加到字符串的开头。

      【讨论】:

      • 谢谢。看好你。将从这里开始。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      相关资源
      最近更新 更多