`

解决java.net.MalformedURLException: unknown protocol问题

 
阅读更多

 

最近在写一个工具时,java 解析Xml时,出现下面异常:

java.net.MalformedURLException: unknown protocol: e
 at java.net.URL.<init>(Unknown Source)
 at java.net.URL.<init>(Unknown Source)
 at java.net.URL.<init>(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
 at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
 at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)

 

发现原因是xml文件放置在中文路径下,因为如果是英文路径就没有问题了。

 

在上网找半天也没有发现好的解决方案。在同事点拔下,将中文路径下文件先读取,放在英文路径下,再使用就没有问题。

 

但是对于我的这个程序,我找到好方法:

 

之前代码:

 

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder;
  builder = factory.newDocumentBuilder();
  Document document = builder.parse(xmlPath);\\直接将路径名给builder.

 

但是如果路径有中文就会报上面的异常;

 

修改后代码:

 

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder;
  builder = factory.newDocumentBuilder();
  
  File file=new File(xmlPath);  //将文件读取,这样路径如果有中文一样可以正常读取
    
  Document document = builder.parse(file); //将file传给DocumentBuilder,

 

没有上面异常可以正常读取。

 

我认为DocumertBuilder这个类对文件的读取可能不够全面吧,所以无法处理读取中文路径下的文件。如果用File先读取,就没有问题。

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 smallsilver 2014-05-04  
,确实是这么回事,回头看看parse的方法,thanks!

相关推荐

    java.net.MalformedURLException异常的解决方法

    1. **使用静态工厂方法**:Java 7引入了`java.net.URI`类,它提供了更严格的URL校验。可以使用`URI`的`toURL()`方法来创建URL对象,这样可以在创建时就发现格式错误。 2. **使用第三方库**:如Apache Commons Lang的...

    java.net.MalformedURLException(解决方案).md

    项目中碰到的,记录一下解决方案

    java网络编程抓取指定网页信息--UrlHtml(java源码)

    import java.net.MalformedURLException; import java.net.URL; public class UrlHtml { @SuppressWarnings("deprecation") public static void main(String[] s) throws IOException{ try { URL ...

    最最常用的 100 个 Java类分享

    41. `java.net.MalformedURLException`:当URL格式不正确时抛出的异常。 42. `android.content.Context`:Android中的Context是应用程序环境的抽象表示。 43. `android.view.View`:Android UI系统的基础,表示...

    Java播放本地声音,实现系统报警

    - `java.net.MalformedURLException`: 处理创建URL时可能出现的异常。 2. **创建音频播放器类** 为了实现音频播放的功能,我们首先需要创建一个名为`JavaClip`的类。这个类继承自`Frame`类,并且包含了一个静态...

    Android中ImageView使用网络图片资源的方法

    本文实例讲述了Android中ImageView使用网络图片资源的方法。分享给大家供大家参考。具体如下: 很多时候我们不想把东西都放在APK里面,...import java.net.MalformedURLException; import java.net.URL; import androi

    基于JAVA的电子相册毕业设计.doc

    1.采用的形式为:java application 2.需要实现的主要功能是: (1)不同用户的登录模块 (2)附加背景音乐 三、概要设计 该程序可以实现用户登录、放大、缩小、上一张、下一张、播放照片等功能。主要使用的工具...

    bddbot测试报告(使用方法)

    - **错误记录**:在命令窗口中可能会出现如`java.net.MalformedURLException: unknown protocol: javascript`等错误,这通常是因为爬虫遇到无法解析的链接类型(例如JavaScript链接)。 #### 三、搜索测试 1. **...

    java教学java-网络编程.ppt

    - **Socket编程**:基于TCP的网络通信,主要涉及`java.net.Socket`和`java.net.ServerSocket`类。Socket类用于客户端,与服务器建立连接并进行数据交换;ServerSocket类用于服务器端,监听特定端口,等待客户端的...

    base64加密commons-codec.jar

    在处理Base64加密的URL时,可能会遇到一些问题,例如Java的`java.net.URL`类无法直接解析包含Base64编码的URL。这个问题通常发生在尝试从Base64编码的字符串中构建URL时,因为URL规范要求其组成部分必须符合特定的...

    JAVA程序设计:第15章 网络编程.ppt

    在Java中,`java.net`包提供了必要的类和接口来实现这一目标。本章将深入探讨如何利用这些工具来创建网络应用。 首先,我们来了解一个核心概念——URL(Uniform Resource Locator),即统一资源定位符。URL是互联网...

    通过HttpURLConnection获取SESSIONID

    import java.net.MalformedURLException; import java.net.URL; import java.util.List; import java.util.Map; public class HttpTest { private HttpURLConnection hc = null; private static final String ...

    Java基于Base64实现编码解码图片文件

    首先,需要引入必要的jar包,包括java.awt.image.BufferedImage、java.io.ByteArrayOutputStream、java.io.File、java.io.FileOutputStream、java.net.MalformedURLException、java.net.URL、javax.imageio.ImageIO...

    跨项目调用webservice接口

    import java.net.MalformedURLException; import java.util.Properties; import java.util.Scanner; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org....

    详解Java两种方式简单实现:爬取网页并且保存

    import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class Spider { public static void main(String[] args) { String filepath = "d:/124.html"; String ...

    javaURL分析.

    在处理URL时,常见的异常有MalformedURLException(格式错误)、IOException(网络问题)等,需适当捕获并处理。 七、实战应用 1. 下载文件:通过URL连接获取InputStream,然后使用FileOutputStream将内容写入本地...

    parser中文API以及示例.pdf

    import java.net.MalformedURLException; import java.net.URL; public class ScrubSelectedWeb { private final static String CRLF = System.getProperty("line.separator"); public static void main(String...

Global site tag (gtag.js) - Google Analytics