我有这样的代码:
public class EntryPoint {
public static void main(String args[]) {
File file = new File("resources/file.xml");
try {
Document document = new SAXReader().read(file);
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
我的测试模块的结构如下:
问题是我收到错误:
嵌套异常:java.io.FileNotFoundException:resources \ file.xml
当然我可以改变路径,例如:
File file = new File("C:/ws/_SimpleTests/resources/file.xml");
它可以正常工作,但我不想使用绝对路径。
我应该在IntelliJ中设置什么才能使用相对路径?
答案 0 :(得分:3)
首先右键单击 resources文件夹 - >将目录标记为 - >资源root 然后 尝试以这种方式阅读文件
InputStream is = TestResources.class.getClassLoader().getResourceAsStream("file.xml");
或
File file = new File(YourClassName.class.getClassLoader().getResource("file.xml")
.getPath());
答案 1 :(得分:2)
您可以使用Paths像这样检索file.xml
File file = Paths.get(".", "resources", "file.xml").normalize().toFile();