java - 使用java和maven打开文件

标签 java maven

我不知道使用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/

相关文章:

java - org.springframework.beans.factory.UnsatisfiedDependencyException : Unsatisfied dependency expressed through method 'anyMethodName' parameter 0:

java - 使用eclipse将项目转换为maven

java - 如何使用 swagger-jaxrs-doclet 的输出来生成 swagger 文档?

java - 在Maven项目中导入错误

java - KafkaProducer 是否具有容错能力?

java - 在 Java 中创建数组堆

eclipse - Eclipse 部署程序集丢失 Maven 依赖项是否有永久修复?

java - Hibernate 或 JDBC 的写操作性能

java - 如何正确处理两个线程更新数据库中的同一行

java - 有没有人在 Hibernate 中使用 Elasticache 作为其二级缓存?