我在哪里放置java.io.FileReader要读取的文件?

时间:2018-02-08 22:12:34

标签: 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包含一个"类"文件夹,其中包含我的src / main / resources /文件夹中的文件,因此这似乎是一个很好的位置。但我不知道如何设置文件路径以引用此位置。

我正在使用IDEA和Spring Boot。

1 个答案:

答案 0 :(得分:1)

/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")
  3. ,在静态环境中,您没有this引用,分别成为:

    1. MyClass.class.getResource...
    2. MyClass.class.getResourceAsStream
    3. 在第一种情况下,你应该(我自己没有验证)能够创建一个File实例,如下所示:File file = new File(this.getClass().getResource("myFolder/myFile.myExt").toURI()),并从中FileReader个实例;在第二种情况下,您可以随意使用InputStream来阅读文件。