java - java.io.FileReader 读取的文件放在哪里?

标签 java tomcat spring-boot intellij-idea

我正在使用 java.io.FileReader:

FileReader fileReader =  = new FileReader(filepath)

在本地运行时,典型的文件路径是 “/Users/acypher/Desktop/enrollment.json”

然后,当我部署到 AWS 上的 Tomcat 时,我想将文件放在 FileReader 可以找到的构建中的某个位置——任何地方都适合我,但我一直无法找到任何可用的位置,因为我不知道 FileReader 使用的是什么根目录。

.war 扩展到一个包含 META-INF 和 WEB-INF 子文件夹的文件夹。 WEB-INF 包含一个“classes”文件夹,其中包含本地在我的 src/main/resources/文件夹中的文件,所以这看起来是个不错的位置。但是我不知道如何设置文件路径来引用这个位置。

我将 IDEA 与 Spring Boot 结合使用。

最佳答案

/src/main/resources/ 绝对是正确的选择。您可以使用方法 Class.getResource(String)Class.getResourceAsStream(String) 访问此文件夹中的文件(参见:https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String))。

例如,如果您的文件在 /src/main/resources/myFolder/myFile.myExt 中,您可以调用:

  1. this.getClass().getResource("myFolder/myFile.myExt")
  2. this.getClass().getResourceAsStream("myFilder/myFile.myExt")

在没有 this 引用的静态上下文中,分别变为:

  1. MyClass.class.getResource...
  2. MyClass.class.getResourceAsStream

在第一种情况下,您应该(我自己没有验证)能够像这样创建一个 File 实例:File file = new File (this.getClass().getResource("myFolder/myFile.myExt").toURI()),以及 FileReader 实例;而在第二种情况下,您可以使用 InputStream 来读取文件。

关于java - java.io.FileReader 读取的文件放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48695633/

相关文章:

spring - 如何使用 Spring Boot 发送通知 (FCM)

java - 每次我尝试在 mysql 数据库中插入数据(在 springboot java 上)时,Autowired 存储库都会收到 nullPointerException 错误

java - 在java lambda中编辑局部变量

java - Maven 没有看到 Mockito 测试?

java - 如何访问 "The full stack trace of the root cause is available in the Apache Tomcat/8.0.39 logs"

spring-boot - Gradle > 如何停止使用 gradle bootRun 启动的 Spring Boot 应用程序?

java - Android Studio 推送标签到远程

java - 如何发送参数值包含空格的 GET 请求?

java - 项目会将 Maven 依赖项视为文件夹而不是 jar 文件,并在运行时给出 ClassNotFoundError

java - 如何在 WebApp 中的处理程序上调用 init()