当文件在那里时,FileNotFound

问题描述 投票:0回答:2

我使用getClassLoader().getResources来寻找Jsoup解析的路径。

String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath();
Document document = Jsoup.parse(new File(path), "utf-8");
Elements names = document.getElementsByTag("name");
System.out.println(names.size());

我的student.xml已经放在我的模块 "day11_xml "的src文件夹下,而这段代码来自同一个模块 "day11_xml "下的包cn.itcast.xml.jsoup中的类JsoupDemo1。错误信息如下。

java.io.FileNotFoundException:UsersdingshunDownloadsNew%20Java%20Projectsdemooutproductionday11_xmlstudent.xml(没有这样的文件或目录)

我不明白,因为我可以在给定的路径中找到准确的文件。我很困惑,但你们能帮我吗?另外,我对Java编程和这个论坛都是新手,如果这个问题听起来很傻,或者我的问题格式不对,请告诉我。

java
2个回答
1
投票

你所做的看起来不错。也许可以使用流版本 JSoup.parse.

URL url = JsoupDemo1.class.getClassLoader().getResource("student.xml");  
InputStream stream = JsoupDemo1.class.getClassLoader().getResourceAsStream("student.xml");
document = Jsoup.parse(stream, "utf-8", url.toURI()toString());

链接的文档似乎暗示它将适用于html而不是xml,所以也许你需要使用另一个提供解析器的参数?


0
投票

实际上,Jsoup找不到我的文件是因为路径名 "New%20Java%20Projects "之间有空格。当我把文件重新加载到一个名字中没有空格的文件夹中时,它就能正常工作了。所以它可以使用parse(File in, String charsetName)方法解析xml。似乎它不能解析路径名中有空格的文件。

© www.soinside.com 2019 - 2024. All rights reserved.