我正在尝试操作名为 Test.XML 的 XML 文件。
我可以在我的文件夹中看到该文件并且可以打开它。 代码:
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setIgnoringComments(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(new File("MyFolder\Test.xml"));
我收到此错误:
java.io.FileNotFoundException: C:\MyFolder\Test.xml (The system cannot find the file specified)
为什么代码无法打开/读取我的文件,但其他程序(如 Notepad++)可以这样做?
***注意:文件的真实名称是“Use-cases\testSuitesA_E_1002+${user}3_12022016+${date}2_2.5.xml”。
最佳答案
请将您的代码修改为:
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setIgnoringComments(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(new File(classLoader.getResource("MyFolder/Test.xml").getPath()));
System.out.println(doc.getDocumentElement());
要运行此代码,请为 .class
文件构建项目。 ClassLoader 需要有 .class
文件。否则,它将无法从类路径读取文件夹或文件。
注意:
new File("MyFolder\Test.xml") -
这将不起作用,因为您没有提供绝对路径。您必须使用类加载器从类路径获取文件(在这种情况下,您不必提及完整路径)。类加载器为您带来完整的绝对路径。请记住:java.nio.File 需要绝对路径才能工作。
如果您想从任意位置读取文件,则必须指定其完整路径。(假设您正在尝试访问外部文件)
关于java - 系统找不到指定的文件,但文件存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54929686/