【发布时间】:2020-09-30 12:32:09
【问题描述】:
似乎无论我做什么我都无法从我的 Spring-boot 应用程序的资源目录中读取文件。
有什么想法吗?
会不会是我调用读取文件的方法的方式?
@SpringBootApplication
public class DemostoreApplication {
public static void main(String[] args) throws IOException {
SpringApplication.run(DemostoreApplication.class, args);
}
@EventListener(classes = ApplicationStartedEvent.class)
public void applicationStarted() {
loadAFile();
}
void loadAFile(){
InputStream inputStream = getClass().getResourceAsStream("user-data.txt");
}
}
我可以看到有很多这样的问题,大部分都没有答案。我已经尝试了所有这些命题。
【问题讨论】:
-
我怀疑你尝试了所有这些。使用spring资源加载机制。使用
ClassPathResource加载此内容。 -
我更好奇为什么示例代码中的方法不起作用。
-
因为它从类的位置加载文件,所以文件应该在类的旁边。因此,您要么需要在根目录下添加
/前缀,要么使用类加载器(而不是类)来加载资源。使用 SpringClassPathResource时,它总是从根目录开始,防止你犯这个错误。
标签: spring-boot file