在一个spring-boot应用程序中,我有一个映像:src/main/resources/images/log.jpg
我需要使用该图像创建新文件,但这不起作用:
File img = new File("/images/logo.jpg");
我该怎么做?
感谢
resources文件夹应该在类路径中。这意味着你可以这样访问它:
@Service
class SomeClass {
@Value("classpath:images/logo.jpg")
private Resource img;
private void methodThatUsesImage() {
// you can do something here with the InputStream of img
}
}
加载资源文件有不同的方法,一种做法如下
ClassLoader cl = getClass().getClassLoader();
File file = new File(cl.getResource("images/logo.jpg").getFile());
在基于春季的项目中,您可以使用
...
ClassPathResource resource = new ClassPathResource("images/logo.jpg");
...
对于在运行时不面对FileNotFoundException
,请参阅所附链接。
- 新文件("/images/logo.jpg"(
java将在";工作目录/images/logo.jpg";。它不存在,对吧?
- 您的文件位于src/main/resources中,因此正确的是
URL url = this.getClass().getClassLoader().getResource("/images/logo.jpg");
File file = new File(url.getFile());