我不知道使用maven时如何正确从java访问文件。我知道还有很多其他问题/答案与此非常相似,但我无法让其中任何一个为我工作。
现在我有代码文件,我希望在这个目录中打开数据文件:
maven_project/src/main/java/project/package/source_file.java
在 pom.xml 中,我包含如下资源:
<build>
<resources>
<resource>
<directory>src/main/resources/question_contents</directory>
<includes>
<include>*.json</include>
</includes>
</resource>
</resources>
</build>
资源文件已正确复制到
maven_project/target/classes
我现在用来构建的命令是
mvn package
如果重要的话,我正在使用Linux
我愿意更改此设置的任何方面以便打开文件。
我更愿意将它们作为 FileInputStream
打开,但我可以处理任何内容。
任何帮助将不胜感激。
更新
我尝试了建议的重复问题中的答案,但仍然没有运气。我之前没有想到的是,这是在抽象类中的方法中完成的,我不知道这会对 this
的引用产生什么影响。
我也知道这在某一时刻是有效的。在将所有内容移至 Maven 之前,我将所有内容集中在一个文件夹中,没有任何问题。
最佳答案
由于您将 Maven 设置为在构建中正确包含资源文件,因此您可以使用类加载器访问它们
InputStream in =
SomeClassInTheSamePackage.class.getResourceAsStream("filename.json");
// or using full path starting from slash
in = SomeClassAnywhereInYourProject.class.getResourceAsStream(
"/question_contents/filename.json");
关于java - 使用java和maven打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30045533/