繁体   English   中英

如何在 Spring Boot 上读取 Heroku 部署上的 static 文件

[英]How to read a static file on Heroku deployment on Spring Boot

我该如何解决这种情况? 我的src/main/resources上有一个 static JSON 文件,当我运行代码时,我使用这个 JSON 来创建一些数据,但是当我尝试在heroku上部署时,我得到了这个错误,可能是因为他们找不到FUNDOS.json文件。

有没有人知道如何解决这个问题?

代码

String FUNDOS_JSON = "src/main/resources/data/FUNDOS.json";
Path filePath = Path.of(FUNDOS_JSON).toAbsolutePath();
String jsonString = Files.readString(filePath);
            
JSONArray json = new JSONArray(jsonString); 

错误

remote:        [ERROR] COMPILATION ERROR :
remote:        [INFO] -------------------------------------------------------------
remote:        [ERROR] /tmp/build_835ef365/src/main/java/br/anbima/mvc/service/AnbimaServiceImpl.java:[36,37] cannot find symbol
remote:          symbol:   method of(java.lang.String)
remote:          location: interface java.nio.file.Path
remote:        [ERROR] /tmp/build_835ef365/src/main/java/br/anbima/mvc/service/AnbimaServiceImpl.java:[37,42] cannot find symbol
remote:          symbol:   method readString(java.nio.file.Path)
remote:          location: class java.nio.file.Files
remote:        [INFO] 2 errors

对于 src/main/resources 中的资产,使用getResourceAsStreamgetResource

假设您的代码位于名为 Foo.java 的文件中,

InputStream fundosStream = Foo.class.getResourceAsStream("/data/FUNDOS.json");
String fundosContent = "";
try(BufferedReader br = new BufferedReader(new InputStreamReader(fundosStream)) {
     String line = br.readLine();
     while(line != null) {
         fundosContent = line + "\n";
         line = br.readLine();
     }
} catch(IOException ioe) {
     ioe.printStackTrace();
}
JSONArray jsonArray = new JSONArray(fundosContent);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM