我的文件路径包含中文,总是引发报错,请问怎么处理?

我的文件路径包含中文,总是引发报错,请问怎么处理?

我的文件路径:D:\eclipse工作空间\xml

复制在eclipse中变成D:\\eclipse工作空间\\xml

我猜这是转义引起的之前把"\\"改成"/"好像也可以

这中文怎么能让new SAXRder().reader("路径");方法正常识别?

除了将文件路径名改成英文还有没有其他方法处理(代码和电脑中的文件路径一起改)?

具体引发的报错:

org.dom4j.DocumentException: unknown protocol: d
    at org.dom4j.io.SAXReader.read(SAXReader.java:464)
    at org.dom4j.io.SAXReader.read(SAXReader.java:303)
    at com.imooc.dom4j.planReader.reader(planReader.java:14)
    at com.imooc.dom4j.planReader.main(planReader.java:29)
Caused by: java.net.MalformedURLException: unknown protocol: d
    at java.base/java.net.URL.<init>(URL.java:664)
    at java.base/java.net.URL.<init>(URL.java:553)
    at java.base/java.net.URL.<init>(URL.java:500)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:651)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:150)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:860)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
    at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
    at org.dom4j.io.SAXReader.read(SAXReader.java:445)
    ... 3 more



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
qq_承鰙輩_0 2020-08-22 10:14:56

我的报错跟你一样,也有中文路径,百度看了下,说是Tomcat安装时,安装路径不要有空格,否则用到Dom4j解析时就容易出错。

把将要解析的xml文档转为File类型就可以了,

如:

String url=" .......\\hr.xml";

File file=new File(url);//增加这行代码

路径的话,直接到文件去复制出来就可以了。

好帮手慕阿满 2020-07-01 18:45:36

同学你好,这边使用file:///D:\\eclipse工作空间\\xml\\src\\plan.xml路径是可以正常读取的,如:

http://img1.sycdn.imooc.com//climg/5efc681809561c0108670486.jpg

http://img1.sycdn.imooc.com//climg/5efc693709f4eae404760181.jpg

同学是报文件找不到错误,而不是unknown protocol: d吗?

建议同学检查一下路径以及文件名等是否书写错误,另外建议将\\改为/再试试。

祝:学习愉快~


好帮手慕阿满 2020-06-28 17:38:21

同学你好,如果使用带有中文的绝对路径,可以在路径前加上file:///,例如:

file:///D:\\eclipse工作空间\\xx.xml

祝:学习愉快~

  • 提问者 notFoundMoneyE #1
    试了一下,还是报错了 java.io.FileNotFoundException: file:\C:\Users\s\Desktop\plan.xml (文件名、目录名或卷标语法不正确。)
    2020-06-28 22:25:14
  • 好帮手慕阿满 回复 提问者 notFoundMoneyE #2
    同学你好,同学的路径写错了,是在路径前加上file:///,同学写为file:\,建议同学修改一下再试试。祝:学习愉快~
    2020-06-29 09:58:47
  • 提问者 notFoundMoneyE 回复 好帮手慕阿满 #3
    String file="file:///C:\\Users\\s\\Desktop\\plan.xml"; 这是我的代码,对应文件没找到异常
    2020-06-29 20:32:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师