java获取文件时候报FileNotFoundException异常,求大神帮忙看看

我的文件位置是在src下:
但是报如下错误:
java.io.FileNotFoundException: C:\Users\Administrator\Workspaces\MyEclipse%2010\Tenlent\bin\person.xml (系统找不到指定的路径。)
//加载本地xml文件资源
String xml=Test.class.getClassLoader().getResource("person.xml").getFile();

肯定还是路径的问题,C:\Users\Administrator\Workspaces\MyEclipse%2010\Tenlent\bin\person.xml 看下是否有特殊字符什么的,空格什么的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-08
检查这个路径对不对C:\Users\Administrator\Workspaces\MyEclipse%2010\Tenlent\bin\person.xml追问

路径是对的

追答

String xml=Test.class.getClassLoader().getResource("person.xml").getFile();
检查这行代码getFile拿到的应该是一个File对象吧 ?

本回答被网友采纳
第2个回答  2019-03-09

你的文件目录有空格。这个路径名中C:\Users\Administrator\Workspaces\MyEclipse%2010\Tenlent\bin\person.xml 

ClassLoader的getResource方法获取的是URL对象,再用URL的getFile方法获取路径时就会出现这种情况。其中"%20"表示空格,路径不对导致FileNotFoundException。你可以看一下,路径中实际是一个叫"MyEclipse 10"的文件夹,但系统去找"MyEclipse%2010"这个文件夹了,这会导致获取不到文件。

解决方法:用getFile方法获取路径名后,把"%20"全部替换为" "即可。

代码:

URL rs = Test.class.getClassLoader().getResource("person.xml");
String xml = rs.getFile();
xml = xml.replaceAll("%20", " ");

相似回答