gpt4 book ai didi

java - 从maven项目中的相对路径读取文件

转载 作者:行者123 更新时间:2023-12-02 02:37:37 25 4
gpt4 key购买 nike

我的java文件在

/src/main/java/Test.java

我想从

读取属性文件/XML 文件

/src/main/resources/plugin.properties and/or

/src/main/resources/templates/basic_java.xml

当我尝试从 Test.java 读取这些文件(当然是在部署之后)时,它无法执行此操作并给出错误

java.io.FileNotFoundException: /target/plugin.properties (No such file or directory) at java.io.FileInputStream.open0(Native Method)

虽然我可以在/target/classes文件夹下找到plugin.propertiesbasic_java.xml,但它无法读取这些文件。

我尝试了多种解决方案,包括:

1. getClass().getResource("Test.java");
2. new File(".").getCanonicalPath() + "target//plugin.properties";
3. ((URLClassLoader) Thread.currentThread().getContextClassLoader()).getURLs()
4. ((URLClassLoader) Thread.currentThread().getContextClassLoader()).getResourceAsStream("Test.java")
5. Thread.currentThread().getContextClassLoader().getSystemResources("Test.java");
6. new FileInputStream("src\\main\\resources\\plugin.properties");
7. new FileInputStream("resources\\plugin.properties");
8. new FileInputStream("src\\main\\resources\\plugin.properties");
9. new FileInputStream("\\plugin.properties");
10. new FileInputStream("\\classes\\plugin.properties");

但运气不好。

最佳答案

你需要这样的东西:

    InputStream inputStream = getClass().getResourceAsStream("/plugin.properties");
String content = IOUtils.toString(inputStream);

IOUtils 来自 apache commons

<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>

这将从类路径打开一个输入流。

关于java - 从maven项目中的相对路径读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46052824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com