我正在使用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。
答案 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
,则可以致电:
this.getClass().getResource("myFolder/myFile.myExt")
this.getClass().getResourceAsStream("myFilder/myFile.myExt")
,在静态环境中,您没有this
引用,分别成为:
MyClass.class.getResource...
MyClass.class.getResourceAsStream
在第一种情况下,你应该(我自己没有验证)能够创建一个File
实例,如下所示:File file = new File(this.getClass().getResource("myFolder/myFile.myExt").toURI())
,并从中FileReader
个实例;在第二种情况下,您可以随意使用InputStream
来阅读文件。