java - 文件无法解析,因为 java 找不到
问题描述
我正在尝试解析一个 xml 文件,到目前为止,这就是我所写的。
public class XMLTest {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
File xmlFile = new File("D:\\workspace\\sudoku baby\\sudoku.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
}
它不断吐出文件未找到异常,就像这样
Exception in thread "main" java.io.FileNotFoundException: D:\workspace\sudoku baby\sudoku.xml (The system cannot find the file specified)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:155)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:110)
at java.base/sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:86)
at java.base/sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:184)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:654)
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.DOMParser.parse(DOMParser.java:246)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:206)
at testingXML.XMLTest.main(XMLTest.java:14)
` 我已经确定它是正确的文件路径,并且经过一些测试它可以找到该文件。当我尝试解析它时会发生错误。我不确定这里的问题到底是什么,如果有人可以指出它或提供帮助,那就太好了。
解决方案
请尝试以下代码:
File xmlFile = new File(Paths.get("D:","workspace", "sudoku baby", "sudoku.xml").toString());
推荐阅读
- html - CSS渐变动画在边缘不起作用
- r - 为什么我不能标记文本数据
- linux - 在容器化的模拟 Raspbian 发行版上使用 systemd 运行 podman 失败
- java - 解决接口默认方法中的 AvoidLiteralsInIfCondition
- docker - Gitlab docker runner 路径问题。gitlab-ci.yml
- java - while 循环中的 mapFrag.getMapAsync() 问题
- java - 我在一个实体中有多个 OneToMany 映射。即使我没有请求该对象,Hibernate 也会加载第一个对象。这是预期的行为吗?
- java - Spring Boot 存储库测试中的日期格式
- xaml - 手机预览方向更改为绝对布局的水平和额外边距时缺少 XAML 标题文本
- ios - 将完成处理程序添加到函数 swift